Algorithmic Trading Model for Simple Moving Average Crossover Grid Search

Task 1. Prepare Environment

In [1]:
!pip install python-dotenv PyMySQL
Requirement already satisfied: python-dotenv in /usr/local/lib/python3.6/dist-packages (0.13.0)
Requirement already satisfied: PyMySQL in /usr/local/lib/python3.6/dist-packages (0.9.3)
In [2]:
# Retrieve CPU information from the system
ncpu = !nproc
print("The number of available CPUs is:", ncpu[0])
The number of available CPUs is: 2
In [3]:
import os
import sys
import smtplib
import numpy as np
import pandas as pd
import requests
import json
from email.message import EmailMessage
import matplotlib.pyplot as plt
from datetime import datetime, timedelta
from dotenv import load_dotenv
In [4]:
# Begin the timer for the script processing
startTimeScript = datetime.now()

# Set up the verbose flag to print detailed messages for debugging (setting True will activate!)
verbose = True

# Set up the sendNotification flag to send progress emails (setting True will send emails!)
notifyStatus = False

# Set up the parent directory location for loading the dotenv files
useColab = True
if useColab:
    # Mount Google Drive locally for storing files
    from google.colab import drive
    drive.mount('/content/gdrive')
    gdrivePrefix = '/content/gdrive/My Drive/Colab_Downloads/'
    env_path = '/content/gdrive/My Drive/Colab Notebooks/'
    dotenv_path = env_path + "python_script.env"
    load_dotenv(dotenv_path=dotenv_path)

# Set up the dotenv file for retrieving environment variables
useLocalPC = False
if useLocalPC:
    env_path = "/Users/david/PycharmProjects/"
    dotenv_path = env_path + "python_script.env"
    load_dotenv(dotenv_path=dotenv_path)

# Configure the plotting style
plt.style.use('seaborn')

# Set Pandas options
pd.set_option("display.max_rows", None)
pd.set_option("display.max_columns", None)
# pd.set_option("display.width", 140)
Drive already mounted at /content/gdrive; to attempt to forcibly remount, call drive.mount("/content/gdrive", force_remount=True).
In [5]:
stock_symbol = 'GOOGL'
initial_capital = 0

# Specify the parameters for the trading strategy
fast_ma_min = 5
fast_ma_max = 20
slow_ma_min = 10
slow_ma_max = 50
ma_increment = 5
min_ma_gap = 5

model_start_date = datetime(2019, 1, 1)
print("Starting date for the model:", model_start_date)
stock_start_date = model_start_date - timedelta(days=int(slow_ma_max*1.5)) # Need more pricing data to calculate moving averages

model_end_date = datetime.now()
# model_end_date = datetime(2020, 6, 30)
print("Ending date for the model:", model_end_date)
Starting date for the model: 2019-01-01 00:00:00
Ending date for the model: 2020-06-30 21:25:26.593678

Task 2. Acquire and Pre-Process Data

In [6]:
# Check and see whether the API key is available
quandl_key = os.environ.get('QUANDL_API')
if quandl_key is None: sys.exit("API key for Quandl not available. Script Processing Aborted!!!")
In [7]:
start_date_string = stock_start_date.strftime('%Y-%m-%d')
end_date_string = model_end_date.strftime('%Y-%m-%d')

quandl_url = "https://www.quandl.com/api/v3/datatables/SHARADAR/SEP.json?date.gte=%s&date.lte=%s&ticker=%s&api_key=%s" % (start_date_string, end_date_string, stock_symbol, quandl_key)
In [8]:
response = requests.get(quandl_url)
quandl_dict = json.loads(response.text)
stock_quandl = pd.DataFrame(quandl_dict['datatable']['data'])
print(len(stock_quandl), 'data points retrieved from the API call.')
427 data points retrieved from the API call.
In [9]:
stock_quandl.columns = ['ticker', 'date', 'open', 'high', 'low', 'close', 'volume', 'dividend', 'closeunadj', 'lastupdated']
# stock_quandl.set_index('date', inplace=True)
stock_quandl.index = pd.to_datetime(stock_quandl.date)
stock_quandl = stock_quandl.sort_index(ascending = True)
stock_quandl.info(verbose=True)
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 427 entries, 2018-10-18 to 2020-06-30
Data columns (total 10 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   ticker       427 non-null    object 
 1   date         427 non-null    object 
 2   open         427 non-null    float64
 3   high         427 non-null    float64
 4   low          427 non-null    float64
 5   close        427 non-null    float64
 6   volume       427 non-null    float64
 7   dividend     427 non-null    float64
 8   closeunadj   427 non-null    float64
 9   lastupdated  427 non-null    object 
dtypes: float64(7), object(3)
memory usage: 36.7+ KB
In [10]:
stock_quandl.head()
Out[10]:
ticker date open high low close volume dividend closeunadj lastupdated
date
2018-10-18 GOOGL 2018-10-18 1130.00 1132.35 1086.34 1097.91 2307596.0 0.0 1097.91 2020-05-01
2018-10-19 GOOGL 2018-10-19 1103.71 1120.95 1097.03 1105.18 2064289.0 0.0 1105.18 2020-05-01
2018-10-22 GOOGL 2018-10-22 1112.51 1121.69 1100.00 1111.37 1355842.0 0.0 1111.37 2020-05-01
2018-10-23 GOOGL 2018-10-23 1091.29 1118.00 1079.01 1114.91 1884255.0 0.0 1114.91 2020-05-01
2018-10-24 GOOGL 2018-10-24 1115.00 1116.62 1055.06 1057.12 2464295.0 0.0 1057.12 2020-05-01
In [11]:
stock_quandl.tail()
Out[11]:
ticker date open high low close volume dividend closeunadj lastupdated
date
2020-06-24 GOOGL 2020-06-24 1463.28 1475.79 1430.00 1432.70 1574103.0 0.0 1432.70 2020-06-24
2020-06-25 GOOGL 2020-06-25 1431.22 1442.32 1419.54 1441.10 1194083.0 0.0 1441.10 2020-06-25
2020-06-26 GOOGL 2020-06-26 1432.63 1437.02 1355.00 1362.54 4882014.0 0.0 1362.54 2020-06-26
2020-06-29 GOOGL 2020-06-29 1360.34 1398.00 1351.65 1397.17 2246904.0 0.0 1397.17 2020-06-30
2020-06-30 GOOGL 2020-06-30 1396.88 1424.00 1386.93 1418.05 1971249.0 0.0 1418.05 2020-06-30
In [12]:
title_string = 'Quandl Historical Stock Information for ' + stock_symbol
stock_quandl['close'].plot(figsize=(16,9), title=title_string)
plt.show()

Task 3. Develop Strategy and Train Model

3.a) Set up the Dataframe for the Trading Model

In [13]:
# Set up the standard column name for modeling
model_template = stock_quandl.loc[:, ['open','close']]
model_template.rename(columns={'open': 'open_price', 'close': 'close_price'}, inplace=True)
if verbose: model_template.info(verbose=True)
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 427 entries, 2018-10-18 to 2020-06-30
Data columns (total 2 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   open_price   427 non-null    float64
 1   close_price  427 non-null    float64
dtypes: float64(2)
memory usage: 10.0 KB

3.b) Set up the Analysis Table with Indicators

In [14]:
def trading_ma_crossover(model):
    waitfor_first_entry = True
    for x in range(len(model)):
        if model['ma_change'].iloc[x] > 0:
            model['trade_signal'].iloc[x] = 1  # trade_signal = 1 means we should take a long position
        else:
            model['trade_signal'].iloc[x] = 0  # trade_signal = 0 means we should take a flat position
        if x != 0:
            model['signal_change'].iloc[x] = model['trade_signal'].iloc[x] - model['trade_signal'].iloc[x-1]
            if waitfor_first_entry and (model['signal_change'].iloc[x-1] == 1):
                model['entry_exit'].iloc[x] = model['signal_change'].iloc[x-1]
                waitfor_first_entry = False
            elif (not waitfor_first_entry) and (model['signal_change'].iloc[x-1] != 0):
                model['entry_exit'].iloc[x] = model['signal_change'].iloc[x-1]
In [15]:
model_collection = {}
serial_number = 1

for slow_ma in range(slow_ma_min, slow_ma_max+1, ma_increment):
    for fast_ma in range(fast_ma_min, fast_ma_max+1, ma_increment):
        if (slow_ma - fast_ma) < min_ma_gap: break
        print('Processing model with slow_ma of', slow_ma, 'and fast_ma of', fast_ma)
        model_name = 'SMA_' + str(serial_number).zfill(3) + '_SlowMA_' + str(slow_ma).zfill(2) + '_FastMA_' + str(fast_ma).zfill(2)
        serial_number = serial_number + 1
        trading_model = model_template.copy()
        trading_model['fast_ma'] = trading_model['close_price'].rolling(fast_ma).mean()
        trading_model['slow_ma'] = trading_model['close_price'].rolling(slow_ma).mean()
        trading_model['ma_change'] = trading_model['fast_ma'] - trading_model['slow_ma']
        trading_model['trade_signal'] = np.zeros(len(trading_model))
        trading_model['signal_change'] = np.zeros(len(trading_model))
        trading_model['entry_exit'] = np.zeros(len(trading_model))
        trading_model = trading_model[model_start_date:model_end_date]
        trading_ma_crossover(trading_model)
        model_collection[model_name] = trading_model.copy()
        print('Model', model_name, 'added to the trading model collection.')
Processing model with slow_ma of 10 and fast_ma of 5
Model SMA_001_SlowMA_10_FastMA_05 added to the trading model collection.
Processing model with slow_ma of 15 and fast_ma of 5
Model SMA_002_SlowMA_15_FastMA_05 added to the trading model collection.
Processing model with slow_ma of 15 and fast_ma of 10
Model SMA_003_SlowMA_15_FastMA_10 added to the trading model collection.
Processing model with slow_ma of 20 and fast_ma of 5
Model SMA_004_SlowMA_20_FastMA_05 added to the trading model collection.
Processing model with slow_ma of 20 and fast_ma of 10
Model SMA_005_SlowMA_20_FastMA_10 added to the trading model collection.
Processing model with slow_ma of 20 and fast_ma of 15
Model SMA_006_SlowMA_20_FastMA_15 added to the trading model collection.
Processing model with slow_ma of 25 and fast_ma of 5
Model SMA_007_SlowMA_25_FastMA_05 added to the trading model collection.
Processing model with slow_ma of 25 and fast_ma of 10
Model SMA_008_SlowMA_25_FastMA_10 added to the trading model collection.
Processing model with slow_ma of 25 and fast_ma of 15
Model SMA_009_SlowMA_25_FastMA_15 added to the trading model collection.
Processing model with slow_ma of 25 and fast_ma of 20
Model SMA_010_SlowMA_25_FastMA_20 added to the trading model collection.
Processing model with slow_ma of 30 and fast_ma of 5
Model SMA_011_SlowMA_30_FastMA_05 added to the trading model collection.
Processing model with slow_ma of 30 and fast_ma of 10
Model SMA_012_SlowMA_30_FastMA_10 added to the trading model collection.
Processing model with slow_ma of 30 and fast_ma of 15
Model SMA_013_SlowMA_30_FastMA_15 added to the trading model collection.
Processing model with slow_ma of 30 and fast_ma of 20
Model SMA_014_SlowMA_30_FastMA_20 added to the trading model collection.
Processing model with slow_ma of 35 and fast_ma of 5
Model SMA_015_SlowMA_35_FastMA_05 added to the trading model collection.
Processing model with slow_ma of 35 and fast_ma of 10
Model SMA_016_SlowMA_35_FastMA_10 added to the trading model collection.
Processing model with slow_ma of 35 and fast_ma of 15
Model SMA_017_SlowMA_35_FastMA_15 added to the trading model collection.
Processing model with slow_ma of 35 and fast_ma of 20
Model SMA_018_SlowMA_35_FastMA_20 added to the trading model collection.
Processing model with slow_ma of 40 and fast_ma of 5
Model SMA_019_SlowMA_40_FastMA_05 added to the trading model collection.
Processing model with slow_ma of 40 and fast_ma of 10
Model SMA_020_SlowMA_40_FastMA_10 added to the trading model collection.
Processing model with slow_ma of 40 and fast_ma of 15
Model SMA_021_SlowMA_40_FastMA_15 added to the trading model collection.
Processing model with slow_ma of 40 and fast_ma of 20
Model SMA_022_SlowMA_40_FastMA_20 added to the trading model collection.
Processing model with slow_ma of 45 and fast_ma of 5
Model SMA_023_SlowMA_45_FastMA_05 added to the trading model collection.
Processing model with slow_ma of 45 and fast_ma of 10
Model SMA_024_SlowMA_45_FastMA_10 added to the trading model collection.
Processing model with slow_ma of 45 and fast_ma of 15
Model SMA_025_SlowMA_45_FastMA_15 added to the trading model collection.
Processing model with slow_ma of 45 and fast_ma of 20
Model SMA_026_SlowMA_45_FastMA_20 added to the trading model collection.
Processing model with slow_ma of 50 and fast_ma of 5
Model SMA_027_SlowMA_50_FastMA_05 added to the trading model collection.
Processing model with slow_ma of 50 and fast_ma of 10
Model SMA_028_SlowMA_50_FastMA_10 added to the trading model collection.
Processing model with slow_ma of 50 and fast_ma of 15
Model SMA_029_SlowMA_50_FastMA_15 added to the trading model collection.
Processing model with slow_ma of 50 and fast_ma of 20
Model SMA_030_SlowMA_50_FastMA_20 added to the trading model collection.
In [16]:
# List the entry/exit points for each model
for key in model_collection:
    print('List the signal change and entry/exit points for', key)
    if verbose: print(model_collection[key][(model_collection[key].signal_change != 0) | (model_collection[key].entry_exit != 0)])
    else: print(model_collection[key][model_collection[key].entry_exit != 0])
    print()
List the signal change and entry/exit points for SMA_001_SlowMA_10_FastMA_05
            open_price  close_price   fast_ma   slow_ma  ma_change  \
date                                                                 
2019-01-17     1087.99      1099.12  1078.224  1079.096     -0.872   
2019-01-18     1108.59      1107.30  1086.790  1082.019      4.771   
2019-01-22     1096.00      1078.63  1092.214  1082.290      9.924   
2019-01-28     1090.07      1079.86  1085.682  1086.236     -0.554   
2019-01-29     1081.04      1070.06  1083.968  1088.091     -4.123   
2019-01-31     1112.24      1125.89  1095.062  1092.877      2.185   
2019-02-01     1122.29      1118.62  1098.484  1094.827      3.657   
2019-02-12     1111.01      1127.58  1112.176  1119.667     -7.491   
2019-02-13     1133.04      1128.63  1113.324  1122.731     -9.407   
2019-02-19     1116.64      1126.51  1126.310  1121.672      4.638   
2019-02-20     1128.88      1120.59  1124.912  1118.544      6.368   
2019-02-22     1109.70      1116.56  1117.500  1117.741     -0.241   
2019-02-25     1121.93      1117.33  1117.040  1119.236     -2.196   
2019-02-28     1119.00      1126.55  1121.068  1120.548      0.520   
2019-03-01     1131.00      1148.52  1127.460  1122.480      4.980   
2019-03-28     1175.50      1172.27  1189.030  1198.902     -9.872   
2019-03-29     1180.18      1176.89  1182.878  1197.561    -14.683   
2019-04-04     1211.29      1219.45  1202.334  1195.682      6.652   
2019-04-05     1219.30      1211.45  1209.246  1196.062     13.184   
2019-05-01     1197.50      1173.32  1242.648  1247.925     -5.277   
2019-05-02     1172.60      1166.51  1222.482  1240.562    -18.080   
2019-05-21     1154.48      1154.44  1164.636  1159.102      5.534   
2019-05-22     1151.25      1155.85  1161.646  1157.609      4.037   
2019-05-23     1146.07      1145.34  1153.814  1155.346     -1.532   
2019-05-24     1152.00      1138.61  1147.780  1152.443     -4.663   
2019-06-13     1084.71      1091.01  1080.456  1069.441     11.015   
2019-06-14     1089.74      1086.30  1084.042  1067.421     16.621   
2019-06-27     1086.75      1076.63  1097.320  1098.974     -1.654   
2019-06-28     1077.23      1082.80  1088.806  1098.624     -9.818   
2019-07-05     1119.37      1132.66  1110.210  1103.765      6.445   
2019-07-08     1125.87      1116.79  1117.008  1102.907     14.101   
2019-07-23     1143.45      1148.05  1142.558  1144.709     -2.151   
2019-07-24     1132.62      1139.73  1141.156  1144.591     -3.435   
2019-07-26     1228.00      1245.22  1161.630  1153.765      7.865   
2019-07-29     1242.50      1241.84  1182.156  1162.898     19.258   
2019-08-06     1165.52      1171.08  1190.426  1194.286     -3.860   
2019-08-07     1157.80      1175.91  1181.968  1197.904    -15.936   
2019-08-14     1176.07      1164.25  1186.114  1184.041      2.073   
2019-08-15     1168.43      1169.32  1178.740  1179.795     -1.055   
2019-08-16     1180.79      1179.21  1176.802  1178.084     -1.282   
2019-08-22     1193.80      1191.52  1189.256  1183.998      5.258   
2019-08-23     1185.17      1153.58  1184.130  1180.466      3.664   
2019-08-26     1159.45      1171.18  1178.278  1180.134     -1.856   
2019-08-27     1183.00      1170.82  1175.736  1177.543     -1.807   
2019-09-03     1181.85      1169.55  1179.778  1179.028      0.750   
2019-09-04     1179.45      1182.27  1182.068  1178.902      3.166   
2019-09-24     1240.00      1218.33  1230.852  1231.077     -0.225   
2019-09-25     1216.01      1245.94  1233.510  1233.671     -0.161   
2019-09-27     1242.83      1225.95  1233.440  1232.995      0.445   
2019-09-30     1220.60      1221.14  1230.730  1231.946     -1.216   
2019-10-01     1222.49      1206.00  1228.264  1229.558     -1.294   
2019-10-10     1198.60      1209.47  1204.242  1204.165      0.077   
2019-10-11     1224.03      1215.71  1205.192  1203.141      2.051   
2019-11-22     1303.00      1293.67  1305.620  1306.246     -0.626   
2019-11-25     1296.26      1305.64  1302.780  1306.982     -4.202   
2019-12-04     1306.10      1318.94  1303.752  1303.307      0.445   
2019-12-05     1327.00      1326.96  1306.718  1305.817      0.901   
2019-12-24     1350.21      1344.43  1350.926  1350.983     -0.057   
2019-12-26     1346.55      1362.47  1353.038  1352.805      0.233   
2019-12-27     1364.00      1354.64  1352.678  1353.420     -0.742   
2019-12-30     1356.81      1339.71  1350.376  1352.704     -2.328   
2020-01-02     1348.41      1368.68  1352.978  1351.952      1.026   
2020-01-03     1348.00      1361.52  1352.788  1352.913     -0.125   
2020-01-06     1351.63      1397.81  1361.422  1357.050      4.372   
2020-01-07     1400.46      1395.11  1372.502  1361.439     11.063   
2020-01-29     1458.46      1456.70  1457.958  1462.509     -4.551   
2020-01-30     1438.10      1454.25  1451.870  1464.014    -12.144   
2020-02-06     1451.98      1475.97  1456.562  1454.216      2.346   
2020-02-07     1467.38      1479.11  1465.828  1455.510     10.318   
2020-02-24     1423.05      1419.86  1492.924  1503.409    -10.485   
2020-02-25     1431.00      1386.32  1466.300  1491.175    -24.875   
2020-03-27     1127.47      1110.26  1111.788  1102.107      9.681   
2020-03-30     1132.64      1146.31  1130.224  1109.438     20.786   
2020-04-07     1217.01      1182.56  1135.516  1136.064     -0.548   
2020-04-08     1203.10      1207.00  1156.496  1146.602      9.894   
2020-04-09     1218.18      1206.57  1174.404  1150.967     23.437   
2020-04-27     1292.00      1270.86  1257.840  1260.931     -3.091   
2020-04-28     1283.20      1232.59  1261.926  1257.667      4.259   
2020-04-29     1345.00      1342.18  1278.680  1266.155     12.525   
2020-05-18     1361.58      1385.18  1367.722  1369.027     -1.305   
2020-05-19     1385.48      1374.40  1367.566  1371.565     -3.999   
2020-05-20     1389.16      1409.16  1379.732  1377.938      1.794   
2020-05-21     1410.99      1406.75  1389.710  1381.685      8.025   
2020-06-15     1389.49      1420.74  1430.468  1433.626     -3.158   
2020-06-16     1449.00      1446.47  1429.346  1434.042     -4.696   
2020-06-22     1425.01      1450.66  1441.686  1436.077      5.609   
2020-06-23     1452.00      1463.98  1445.188  1437.267      7.921   
2020-06-26     1432.63      1362.54  1430.196  1432.949     -2.753   
2020-06-29     1360.34      1397.17  1419.498  1430.592    -11.094   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-17           0.0           -1.0         0.0  
2019-01-18           1.0            1.0         0.0  
2019-01-22           1.0            0.0         1.0  
2019-01-28           0.0           -1.0         0.0  
2019-01-29           0.0            0.0        -1.0  
2019-01-31           1.0            1.0         0.0  
2019-02-01           1.0            0.0         1.0  
2019-02-12           0.0           -1.0         0.0  
2019-02-13           0.0            0.0        -1.0  
2019-02-19           1.0            1.0         0.0  
2019-02-20           1.0            0.0         1.0  
2019-02-22           0.0           -1.0         0.0  
2019-02-25           0.0            0.0        -1.0  
2019-02-28           1.0            1.0         0.0  
2019-03-01           1.0            0.0         1.0  
2019-03-28           0.0           -1.0         0.0  
2019-03-29           0.0            0.0        -1.0  
2019-04-04           1.0            1.0         0.0  
2019-04-05           1.0            0.0         1.0  
2019-05-01           0.0           -1.0         0.0  
2019-05-02           0.0            0.0        -1.0  
2019-05-21           1.0            1.0         0.0  
2019-05-22           1.0            0.0         1.0  
2019-05-23           0.0           -1.0         0.0  
2019-05-24           0.0            0.0        -1.0  
2019-06-13           1.0            1.0         0.0  
2019-06-14           1.0            0.0         1.0  
2019-06-27           0.0           -1.0         0.0  
2019-06-28           0.0            0.0        -1.0  
2019-07-05           1.0            1.0         0.0  
2019-07-08           1.0            0.0         1.0  
2019-07-23           0.0           -1.0         0.0  
2019-07-24           0.0            0.0        -1.0  
2019-07-26           1.0            1.0         0.0  
2019-07-29           1.0            0.0         1.0  
2019-08-06           0.0           -1.0         0.0  
2019-08-07           0.0            0.0        -1.0  
2019-08-14           1.0            1.0         0.0  
2019-08-15           0.0           -1.0         1.0  
2019-08-16           0.0            0.0        -1.0  
2019-08-22           1.0            1.0         0.0  
2019-08-23           1.0            0.0         1.0  
2019-08-26           0.0           -1.0         0.0  
2019-08-27           0.0            0.0        -1.0  
2019-09-03           1.0            1.0         0.0  
2019-09-04           1.0            0.0         1.0  
2019-09-24           0.0           -1.0         0.0  
2019-09-25           0.0            0.0        -1.0  
2019-09-27           1.0            1.0         0.0  
2019-09-30           0.0           -1.0         1.0  
2019-10-01           0.0            0.0        -1.0  
2019-10-10           1.0            1.0         0.0  
2019-10-11           1.0            0.0         1.0  
2019-11-22           0.0           -1.0         0.0  
2019-11-25           0.0            0.0        -1.0  
2019-12-04           1.0            1.0         0.0  
2019-12-05           1.0            0.0         1.0  
2019-12-24           0.0           -1.0         0.0  
2019-12-26           1.0            1.0        -1.0  
2019-12-27           0.0           -1.0         1.0  
2019-12-30           0.0            0.0        -1.0  
2020-01-02           1.0            1.0         0.0  
2020-01-03           0.0           -1.0         1.0  
2020-01-06           1.0            1.0        -1.0  
2020-01-07           1.0            0.0         1.0  
2020-01-29           0.0           -1.0         0.0  
2020-01-30           0.0            0.0        -1.0  
2020-02-06           1.0            1.0         0.0  
2020-02-07           1.0            0.0         1.0  
2020-02-24           0.0           -1.0         0.0  
2020-02-25           0.0            0.0        -1.0  
2020-03-27           1.0            1.0         0.0  
2020-03-30           1.0            0.0         1.0  
2020-04-07           0.0           -1.0         0.0  
2020-04-08           1.0            1.0        -1.0  
2020-04-09           1.0            0.0         1.0  
2020-04-27           0.0           -1.0         0.0  
2020-04-28           1.0            1.0        -1.0  
2020-04-29           1.0            0.0         1.0  
2020-05-18           0.0           -1.0         0.0  
2020-05-19           0.0            0.0        -1.0  
2020-05-20           1.0            1.0         0.0  
2020-05-21           1.0            0.0         1.0  
2020-06-15           0.0           -1.0         0.0  
2020-06-16           0.0            0.0        -1.0  
2020-06-22           1.0            1.0         0.0  
2020-06-23           1.0            0.0         1.0  
2020-06-26           0.0           -1.0         0.0  
2020-06-29           0.0            0.0        -1.0  

List the signal change and entry/exit points for SMA_002_SlowMA_15_FastMA_05
            open_price  close_price   fast_ma      slow_ma  ma_change  \
date                                                                    
2019-02-21     1118.78      1104.21  1120.028  1121.830000  -1.802000   
2019-02-28     1119.00      1126.55  1121.068  1118.140000   2.928000   
2019-03-01     1131.00      1148.52  1127.460  1120.980667   6.479333   
2019-03-28     1175.50      1172.27  1189.030  1193.806000  -4.776000   
2019-03-29     1180.18      1176.89  1182.878  1195.600667 -12.722667   
2019-04-04     1211.29      1219.45  1202.334  1200.046000   2.288000   
2019-04-05     1219.30      1211.45  1209.246  1201.456000   7.790000   
2019-05-02     1172.60      1166.51  1222.482  1235.768000 -13.286000   
2019-05-03     1177.41      1189.55  1204.908  1234.432000 -29.524000   
2019-06-17     1089.10      1093.89  1086.268  1083.700667   2.567333   
2019-06-18     1111.50      1105.24  1091.108  1081.412667   9.695333   
2019-06-28     1077.23      1082.80  1088.806  1093.763333  -4.957333   
2019-07-01     1101.04      1100.00  1085.466  1094.912667  -9.446667   
2019-07-05     1119.37      1132.66  1110.210  1102.719333   7.490667   
2019-07-08     1125.87      1116.79  1117.008  1104.752000  12.256000   
2019-07-25     1138.95      1135.94  1138.896  1139.766667  -0.870667   
2019-07-26     1228.00      1245.22  1161.630  1147.270667  14.359333   
2019-07-29     1242.50      1241.84  1182.156  1155.607333  26.548667   
2019-08-08     1186.43      1206.19  1180.850  1182.918000  -2.068000   
2019-08-09     1199.99      1188.90  1179.366  1186.741333  -7.375333   
2019-08-21     1195.82      1191.58  1184.816  1184.299333   0.516667   
2019-08-22     1193.80      1191.52  1189.256  1182.948667   6.307333   
2019-08-26     1159.45      1171.18  1178.278  1181.194667  -2.916667   
2019-08-27     1183.00      1170.82  1175.736  1181.177333  -5.441333   
2019-09-04     1179.45      1182.27  1182.068  1179.051333   3.016667   
2019-09-05     1193.66      1212.19  1189.756  1182.247333   7.508667   
2019-10-01     1222.49      1206.00  1228.264  1230.139333  -1.875333   
2019-10-02     1196.50      1177.92  1214.660  1227.334000 -12.674000   
2019-10-15     1221.50      1242.24  1217.518  1213.706667   3.811333   
2019-10-16     1241.81      1243.00  1225.638  1213.510667  12.127333   
2019-11-25     1296.26      1305.64  1302.780  1304.432667  -1.652667   
2019-11-26     1309.91      1313.00  1302.862  1305.870000  -3.008000   
2019-12-06     1332.75      1339.39  1313.778  1311.026000   2.752000   
2019-12-09     1338.86      1342.99  1324.604  1311.656000  12.948000   
2019-12-31     1335.79      1339.39  1348.128  1349.928667  -1.800667   
2020-01-02     1348.41      1368.68  1352.978  1351.648000   1.330000   
2020-01-03     1348.00      1361.52  1352.788  1352.799333  -0.011333   
2020-01-06     1351.63      1397.81  1361.422  1356.087333   5.334667   
2020-01-07     1400.46      1395.11  1372.502  1359.303333  13.198667   
2020-01-30     1438.10      1454.25  1451.870  1453.247333  -1.377333   
2020-01-31     1467.86      1432.78  1445.192  1454.113333  -8.921333   
2020-02-07     1467.38      1479.11  1465.828  1463.460000   2.368000   
2020-02-10     1477.23      1508.66  1471.040  1465.402667   5.637333   
2020-02-25     1431.00      1386.32  1466.300  1484.463333 -18.163333   
2020-02-26     1394.98      1390.47  1439.420  1480.800667 -41.380667   
2020-03-31     1148.73      1161.95  1136.612  1124.403333  12.208667   
2020-04-01     1124.00      1102.10  1136.708  1117.150000  19.558000   
2020-06-15     1389.49      1420.74  1430.468  1430.969333  -0.501333   
2020-06-16     1449.00      1446.47  1429.346  1432.642667  -3.296667   
2020-06-19     1440.00      1424.64  1435.702  1435.260000   0.442000   
2020-06-22     1425.01      1450.66  1441.686  1436.312667   5.373333   
2020-06-26     1432.63      1362.54  1430.196  1433.942000  -3.746000   
2020-06-29     1360.34      1397.17  1419.498  1430.550667 -11.052667   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-02-21           0.0           -1.0         0.0  
2019-02-28           1.0            1.0         0.0  
2019-03-01           1.0            0.0         1.0  
2019-03-28           0.0           -1.0         0.0  
2019-03-29           0.0            0.0        -1.0  
2019-04-04           1.0            1.0         0.0  
2019-04-05           1.0            0.0         1.0  
2019-05-02           0.0           -1.0         0.0  
2019-05-03           0.0            0.0        -1.0  
2019-06-17           1.0            1.0         0.0  
2019-06-18           1.0            0.0         1.0  
2019-06-28           0.0           -1.0         0.0  
2019-07-01           0.0            0.0        -1.0  
2019-07-05           1.0            1.0         0.0  
2019-07-08           1.0            0.0         1.0  
2019-07-25           0.0           -1.0         0.0  
2019-07-26           1.0            1.0        -1.0  
2019-07-29           1.0            0.0         1.0  
2019-08-08           0.0           -1.0         0.0  
2019-08-09           0.0            0.0        -1.0  
2019-08-21           1.0            1.0         0.0  
2019-08-22           1.0            0.0         1.0  
2019-08-26           0.0           -1.0         0.0  
2019-08-27           0.0            0.0        -1.0  
2019-09-04           1.0            1.0         0.0  
2019-09-05           1.0            0.0         1.0  
2019-10-01           0.0           -1.0         0.0  
2019-10-02           0.0            0.0        -1.0  
2019-10-15           1.0            1.0         0.0  
2019-10-16           1.0            0.0         1.0  
2019-11-25           0.0           -1.0         0.0  
2019-11-26           0.0            0.0        -1.0  
2019-12-06           1.0            1.0         0.0  
2019-12-09           1.0            0.0         1.0  
2019-12-31           0.0           -1.0         0.0  
2020-01-02           1.0            1.0        -1.0  
2020-01-03           0.0           -1.0         1.0  
2020-01-06           1.0            1.0        -1.0  
2020-01-07           1.0            0.0         1.0  
2020-01-30           0.0           -1.0         0.0  
2020-01-31           0.0            0.0        -1.0  
2020-02-07           1.0            1.0         0.0  
2020-02-10           1.0            0.0         1.0  
2020-02-25           0.0           -1.0         0.0  
2020-02-26           0.0            0.0        -1.0  
2020-03-31           1.0            1.0         0.0  
2020-04-01           1.0            0.0         1.0  
2020-06-15           0.0           -1.0         0.0  
2020-06-16           0.0            0.0        -1.0  
2020-06-19           1.0            1.0         0.0  
2020-06-22           1.0            0.0         1.0  
2020-06-26           0.0           -1.0         0.0  
2020-06-29           0.0            0.0        -1.0  

List the signal change and entry/exit points for SMA_003_SlowMA_15_FastMA_10
            open_price  close_price   fast_ma      slow_ma  ma_change  \
date                                                                    
2019-01-07     1080.97      1075.92  1040.245  1038.817333   1.427667   
2019-01-08     1086.00      1085.37  1049.657  1041.061333   8.595667   
2019-02-20     1128.88      1120.59  1118.544  1121.415333  -2.871333   
2019-02-21     1118.78      1104.21  1116.676  1121.830000  -5.154000   
2019-02-26     1114.37      1122.01  1121.225  1119.828000   1.397000   
2019-02-27     1114.01      1122.89  1120.756  1117.896000   2.860000   
2019-04-03     1212.70      1210.81  1197.350  1198.251333  -0.901333   
2019-04-04     1211.29      1219.45  1195.682  1200.046000  -4.364000   
2019-04-11     1208.90      1209.59  1205.013  1199.685333   5.327667   
2019-04-12     1215.62      1222.73  1209.597  1200.690667   8.906333   
2019-05-06     1172.00      1193.46  1229.340  1232.480667  -3.140667   
2019-05-07     1185.81      1178.86  1220.167  1229.302667  -9.135667   
2019-06-19     1107.24      1104.51  1083.998  1080.384000   3.614000   
2019-06-20     1121.70      1113.20  1090.542  1079.836667  10.705333   
2019-07-08     1125.87      1116.79  1102.907  1104.752000  -1.845000   
2019-07-09     1110.32      1124.29  1103.666  1106.778667  -3.112667   
2019-07-11     1146.16      1144.08  1115.375  1111.794667   3.580333   
2019-07-12     1142.93      1145.34  1122.246  1113.937333   8.308667   
2019-08-13     1174.35      1196.73  1189.436  1192.339333  -2.903333   
2019-08-14     1176.07      1164.25  1184.041  1193.974000  -9.933000   
2019-08-21     1195.82      1191.58  1185.465  1184.299333   1.165667   
2019-08-22     1193.80      1191.52  1183.998  1182.948667   1.049333   
2019-08-26     1159.45      1171.18  1180.134  1181.194667  -1.060667   
2019-08-27     1183.00      1170.82  1177.543  1181.177333  -3.634333   
2019-08-29     1186.42      1194.24  1180.985  1180.236667   0.748333   
2019-08-30     1200.35      1190.53  1182.117  1180.345333   1.771667   
2019-09-03     1181.85      1169.55  1179.028  1180.015333  -0.987333   
2019-09-04     1179.45      1182.27  1178.902  1179.051333  -0.149333   
2019-09-09     1207.08      1205.27  1187.612  1186.451333   1.160667   
2019-09-10     1196.09      1205.70  1191.064  1186.802000   4.262000   
2019-10-01     1222.49      1206.00  1229.558  1230.139333  -0.581333   
2019-10-02     1196.50      1177.92  1224.085  1227.334000  -3.249000   
2019-10-17     1251.40      1252.80  1219.273  1214.211333   5.061667   
2019-10-18     1254.69      1244.41  1222.618  1215.442000   7.176000   
2019-12-02     1302.56      1288.86  1305.182  1305.745333  -0.563333   
2019-12-03     1278.66      1294.74  1302.672  1305.509333  -2.837333   
2019-12-09     1338.86      1342.99  1314.674  1311.656000   3.018000   
2019-12-10     1339.94      1342.89  1318.399  1313.192667   5.206333   
2020-02-05     1463.61      1446.05  1455.088  1459.078667  -3.990667   
2020-02-06     1451.98      1475.97  1454.216  1461.530000  -7.314000   
2020-02-11     1513.27      1510.06  1469.159  1467.256667   1.902333   
2020-02-12     1515.86      1518.63  1475.352  1469.554000   5.798000   
2020-02-26     1394.98      1390.47  1479.216  1480.800667  -1.584667   
2020-02-27     1359.14      1314.95  1458.848  1472.060667 -13.212667   
2020-04-03     1114.71      1092.70  1117.903  1109.410667   8.492333   
2020-04-06     1133.00      1183.19  1130.809  1116.756667  14.052333   
2020-06-22     1425.01      1450.66  1436.077  1436.312667  -0.235667   
2020-06-23     1452.00      1463.98  1437.267  1437.757333  -0.490333   
2020-06-29     1360.34      1397.17  1430.592  1430.550667   0.041333   
2020-06-30     1396.88      1418.05  1427.750  1428.282000  -0.532000   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-07           1.0            1.0         0.0  
2019-01-08           1.0            0.0         1.0  
2019-02-20           0.0           -1.0         0.0  
2019-02-21           0.0            0.0        -1.0  
2019-02-26           1.0            1.0         0.0  
2019-02-27           1.0            0.0         1.0  
2019-04-03           0.0           -1.0         0.0  
2019-04-04           0.0            0.0        -1.0  
2019-04-11           1.0            1.0         0.0  
2019-04-12           1.0            0.0         1.0  
2019-05-06           0.0           -1.0         0.0  
2019-05-07           0.0            0.0        -1.0  
2019-06-19           1.0            1.0         0.0  
2019-06-20           1.0            0.0         1.0  
2019-07-08           0.0           -1.0         0.0  
2019-07-09           0.0            0.0        -1.0  
2019-07-11           1.0            1.0         0.0  
2019-07-12           1.0            0.0         1.0  
2019-08-13           0.0           -1.0         0.0  
2019-08-14           0.0            0.0        -1.0  
2019-08-21           1.0            1.0         0.0  
2019-08-22           1.0            0.0         1.0  
2019-08-26           0.0           -1.0         0.0  
2019-08-27           0.0            0.0        -1.0  
2019-08-29           1.0            1.0         0.0  
2019-08-30           1.0            0.0         1.0  
2019-09-03           0.0           -1.0         0.0  
2019-09-04           0.0            0.0        -1.0  
2019-09-09           1.0            1.0         0.0  
2019-09-10           1.0            0.0         1.0  
2019-10-01           0.0           -1.0         0.0  
2019-10-02           0.0            0.0        -1.0  
2019-10-17           1.0            1.0         0.0  
2019-10-18           1.0            0.0         1.0  
2019-12-02           0.0           -1.0         0.0  
2019-12-03           0.0            0.0        -1.0  
2019-12-09           1.0            1.0         0.0  
2019-12-10           1.0            0.0         1.0  
2020-02-05           0.0           -1.0         0.0  
2020-02-06           0.0            0.0        -1.0  
2020-02-11           1.0            1.0         0.0  
2020-02-12           1.0            0.0         1.0  
2020-02-26           0.0           -1.0         0.0  
2020-02-27           0.0            0.0        -1.0  
2020-04-03           1.0            1.0         0.0  
2020-04-06           1.0            0.0         1.0  
2020-06-22           0.0           -1.0         0.0  
2020-06-23           0.0            0.0        -1.0  
2020-06-29           1.0            1.0         0.0  
2020-06-30           0.0           -1.0         1.0  

List the signal change and entry/exit points for SMA_004_SlowMA_20_FastMA_05
            open_price  close_price   fast_ma    slow_ma  ma_change  \
date                                                                  
2019-02-26     1114.37      1122.01  1116.140  1117.5700    -1.4300   
2019-03-01     1131.00      1148.52  1127.460  1122.7710     4.6890   
2019-03-04     1154.56      1153.42  1134.678  1124.5110    10.1670   
2019-03-29     1180.18      1176.89  1182.878  1186.1190    -3.2410   
2019-04-01     1187.54      1198.98  1183.198  1188.3970    -5.1990   
2019-04-03     1212.70      1210.81  1192.898  1192.5080     0.3900   
2019-04-04     1211.29      1219.45  1202.334  1195.9380     6.3960   
2019-05-02     1172.60      1166.51  1222.482  1229.2420    -6.7600   
2019-05-03     1177.41      1189.55  1204.908  1227.7470   -22.8390   
2019-06-19     1107.24      1104.51  1096.190  1095.2530     0.9370   
2019-06-20     1121.70      1113.20  1100.628  1093.1205     7.5075   
2019-07-01     1101.04      1100.00  1085.466  1086.0855    -0.6195   
2019-07-02     1104.83      1112.60  1090.470  1088.9910     1.4790   
2019-07-03     1118.50      1122.99  1099.004  1092.9085     6.0955   
2019-08-15     1168.43      1169.32  1178.740  1181.8735    -3.1335   
2019-08-16     1180.79      1179.21  1176.802  1184.2565    -7.4545   
2019-08-30     1200.35      1190.53  1180.104  1180.1005     0.0035   
2019-09-03     1181.85      1169.55  1179.778  1180.8405    -1.0625   
2019-09-04     1179.45      1182.27  1182.068  1181.4000     0.6680   
2019-09-05     1193.66      1212.19  1189.756  1183.2140     6.5420   
2019-10-02     1196.50      1177.92  1214.660  1222.9745    -8.3145   
2019-10-03     1183.34      1189.43  1204.088  1221.8365   -17.7485   
2019-10-16     1241.81      1243.00  1225.638  1218.5105     7.1275   
2019-10-17     1251.40      1252.80  1234.304  1219.2130    15.0910   
2019-12-03     1278.66      1294.74  1302.564  1303.9655    -1.4015   
2019-12-04     1306.10      1318.94  1303.752  1305.3405    -1.5885   
2019-12-06     1332.75      1339.39  1313.778  1308.7605     5.0175   
2019-12-09     1338.86      1342.99  1324.604  1310.4600    14.1440   
2020-02-25     1431.00      1386.32  1466.300  1477.1890   -10.8890   
2020-02-26     1394.98      1390.47  1439.420  1474.1875   -34.7675   
2020-04-07     1217.01      1182.56  1135.516  1127.1815     8.3345   
2020-04-08     1203.10      1207.00  1156.496  1126.9865    29.5095   
2020-06-17     1452.94      1452.54  1426.914  1429.6350    -2.7210   
2020-06-18     1449.85      1434.12  1433.358  1430.8830     2.4750   
2020-06-19     1440.00      1424.64  1435.702  1431.7775     3.9245   
2020-06-26     1432.63      1362.54  1430.196  1433.9940    -3.7980   
2020-06-29     1360.34      1397.17  1419.498  1432.1090   -12.6110   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-02-26           0.0           -1.0         0.0  
2019-03-01           1.0            1.0         0.0  
2019-03-04           1.0            0.0         1.0  
2019-03-29           0.0           -1.0         0.0  
2019-04-01           0.0            0.0        -1.0  
2019-04-03           1.0            1.0         0.0  
2019-04-04           1.0            0.0         1.0  
2019-05-02           0.0           -1.0         0.0  
2019-05-03           0.0            0.0        -1.0  
2019-06-19           1.0            1.0         0.0  
2019-06-20           1.0            0.0         1.0  
2019-07-01           0.0           -1.0         0.0  
2019-07-02           1.0            1.0        -1.0  
2019-07-03           1.0            0.0         1.0  
2019-08-15           0.0           -1.0         0.0  
2019-08-16           0.0            0.0        -1.0  
2019-08-30           1.0            1.0         0.0  
2019-09-03           0.0           -1.0         1.0  
2019-09-04           1.0            1.0        -1.0  
2019-09-05           1.0            0.0         1.0  
2019-10-02           0.0           -1.0         0.0  
2019-10-03           0.0            0.0        -1.0  
2019-10-16           1.0            1.0         0.0  
2019-10-17           1.0            0.0         1.0  
2019-12-03           0.0           -1.0         0.0  
2019-12-04           0.0            0.0        -1.0  
2019-12-06           1.0            1.0         0.0  
2019-12-09           1.0            0.0         1.0  
2020-02-25           0.0           -1.0         0.0  
2020-02-26           0.0            0.0        -1.0  
2020-04-07           1.0            1.0         0.0  
2020-04-08           1.0            0.0         1.0  
2020-06-17           0.0           -1.0         0.0  
2020-06-18           1.0            1.0        -1.0  
2020-06-19           1.0            0.0         1.0  
2020-06-26           0.0           -1.0         0.0  
2020-06-29           0.0            0.0        -1.0  

List the signal change and entry/exit points for SMA_005_SlowMA_20_FastMA_10
            open_price  close_price   fast_ma    slow_ma  ma_change  \
date                                                                  
2019-01-08     1086.00      1085.37  1049.657  1046.4865     3.1705   
2019-01-09     1087.99      1081.65  1059.355  1047.9100    11.4450   
2019-02-28     1119.00      1126.55  1120.548  1121.6395    -1.0915   
2019-03-01     1131.00      1148.52  1122.480  1122.7710    -0.2910   
2019-03-04     1154.56      1153.42  1125.859  1124.5110     1.3480   
2019-03-05     1156.00      1169.19  1130.127  1125.8995     4.2275   
2019-04-04     1211.29      1219.45  1195.682  1195.9380    -0.2560   
2019-04-05     1219.30      1211.45  1196.062  1199.0120    -2.9500   
2019-04-10     1205.09      1206.45  1201.281  1201.1045     0.1765   
2019-04-11     1208.90      1209.59  1205.013  1201.9575     3.0555   
2019-05-07     1185.81      1178.86  1220.167  1225.3765    -5.2095   
2019-05-08     1177.29      1170.78  1211.240  1223.7810   -12.5410   
2019-06-21     1109.86      1125.37  1096.242  1092.1220     4.1200   
2019-06-24     1120.00      1116.70  1099.636  1091.0265     8.6095   
2019-08-15     1168.43      1169.32  1179.795  1181.8735    -2.0785   
2019-08-16     1180.79      1179.21  1178.084  1184.2565    -6.1725   
2019-08-29     1186.42      1194.24  1180.985  1180.3900     0.5950   
2019-08-30     1200.35      1190.53  1182.117  1180.1005     2.0165   
2019-09-03     1181.85      1169.55  1179.028  1180.8405    -1.8125   
2019-09-04     1179.45      1182.27  1178.902  1181.4000    -2.4980   
2019-09-09     1207.08      1205.27  1187.612  1184.0390     3.5730   
2019-09-10     1196.09      1205.70  1191.064  1185.5990     5.4650   
2019-10-03     1183.34      1189.43  1219.153  1221.8365    -2.6835   
2019-10-04     1194.29      1210.96  1217.265  1222.0685    -4.8035   
2019-10-17     1251.40      1252.80  1219.273  1219.2130     0.0600   
2019-10-18     1254.69      1244.41  1222.618  1219.9415     2.6765   
2019-12-03     1278.66      1294.74  1302.672  1303.9655    -1.2935   
2019-12-04     1306.10      1318.94  1303.307  1305.3405    -2.0335   
2019-12-06     1332.75      1339.39  1309.742  1308.7605     0.9815   
2019-12-09     1338.86      1342.99  1314.674  1310.4600     4.2140   
2020-02-07     1467.38      1479.11  1455.510  1457.0420    -1.5320   
2020-02-10     1477.23      1508.66  1463.203  1461.0270     2.1760   
2020-02-11     1513.27      1510.06  1469.159  1464.5285     4.6305   
2020-02-27     1359.14      1314.95  1458.848  1467.1000    -8.2520   
2020-02-28     1274.31      1339.25  1441.434  1461.3500   -19.9160   
2020-04-07     1217.01      1182.56  1136.064  1127.1815     8.8825   
2020-04-08     1203.10      1207.00  1146.602  1126.9865    19.6155   
2020-06-24     1463.28      1432.70  1434.067  1436.4000    -2.3330   
2020-06-25     1431.22      1441.10  1437.987  1437.5430     0.4440   
2020-06-26     1432.63      1362.54  1432.949  1433.9940    -1.0450   
2020-06-29     1360.34      1397.17  1430.592  1432.1090    -1.5170   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-08           1.0            1.0         0.0  
2019-01-09           1.0            0.0         1.0  
2019-02-28           0.0           -1.0         0.0  
2019-03-01           0.0            0.0        -1.0  
2019-03-04           1.0            1.0         0.0  
2019-03-05           1.0            0.0         1.0  
2019-04-04           0.0           -1.0         0.0  
2019-04-05           0.0            0.0        -1.0  
2019-04-10           1.0            1.0         0.0  
2019-04-11           1.0            0.0         1.0  
2019-05-07           0.0           -1.0         0.0  
2019-05-08           0.0            0.0        -1.0  
2019-06-21           1.0            1.0         0.0  
2019-06-24           1.0            0.0         1.0  
2019-08-15           0.0           -1.0         0.0  
2019-08-16           0.0            0.0        -1.0  
2019-08-29           1.0            1.0         0.0  
2019-08-30           1.0            0.0         1.0  
2019-09-03           0.0           -1.0         0.0  
2019-09-04           0.0            0.0        -1.0  
2019-09-09           1.0            1.0         0.0  
2019-09-10           1.0            0.0         1.0  
2019-10-03           0.0           -1.0         0.0  
2019-10-04           0.0            0.0        -1.0  
2019-10-17           1.0            1.0         0.0  
2019-10-18           1.0            0.0         1.0  
2019-12-03           0.0           -1.0         0.0  
2019-12-04           0.0            0.0        -1.0  
2019-12-06           1.0            1.0         0.0  
2019-12-09           1.0            0.0         1.0  
2020-02-07           0.0           -1.0         0.0  
2020-02-10           1.0            1.0        -1.0  
2020-02-11           1.0            0.0         1.0  
2020-02-27           0.0           -1.0         0.0  
2020-02-28           0.0            0.0        -1.0  
2020-04-07           1.0            1.0         0.0  
2020-04-08           1.0            0.0         1.0  
2020-06-24           0.0           -1.0         0.0  
2020-06-25           1.0            1.0        -1.0  
2020-06-26           0.0           -1.0         1.0  
2020-06-29           0.0            0.0        -1.0  

List the signal change and entry/exit points for SMA_006_SlowMA_20_FastMA_15
            open_price  close_price      fast_ma    slow_ma  ma_change  \
date                                                                     
2019-01-11     1069.90      1064.47  1049.090000  1048.3060   0.784000   
2019-01-14     1053.34      1051.51  1050.952000  1047.2045   3.747500   
2019-02-27     1114.01      1122.89  1117.896000  1120.2115  -2.315500   
2019-02-28     1119.00      1126.55  1118.140000  1121.6395  -3.499500   
2019-03-05     1156.00      1169.19  1128.854667  1125.8995   2.955167   
2019-03-06     1171.76      1164.94  1131.345333  1126.5530   4.792333   
2019-04-11     1208.90      1209.59  1199.685333  1201.9575  -2.272167   
2019-04-12     1215.62      1222.73  1200.690667  1203.5790  -2.888333   
2019-04-17     1237.00      1240.14  1209.580667  1207.6360   1.944667   
2019-04-18     1245.00      1241.47  1214.194000  1207.9030   6.291000   
2019-05-09     1162.60      1167.97  1220.416000  1221.8570  -1.441000   
2019-05-10     1168.84      1167.64  1215.494000  1219.7595  -4.265500   
2019-06-25     1115.08      1087.58  1088.498000  1088.4275   0.070500   
2019-06-26     1091.00      1080.32  1090.876667  1086.4465   4.430167   
2019-08-20     1195.35      1183.53  1186.074000  1189.0920  -3.018000   
2019-08-21     1195.82      1191.58  1184.299333  1191.6845  -7.385167   
2019-08-30     1200.35      1190.53  1180.345333  1180.1005   0.244833   
2019-09-03     1181.85      1169.55  1180.015333  1180.8405  -0.825167   
2019-09-04     1179.45      1182.27  1179.051333  1181.4000  -2.348667   
2019-09-06     1209.14      1206.32  1184.714000  1183.2205   1.493500   
2019-09-09     1207.08      1205.27  1186.451333  1184.0390   2.412333   
2019-10-07     1207.00      1208.25  1220.801333  1222.2175  -1.416167   
2019-10-08     1198.77      1190.13  1218.151333  1221.4390  -3.287667   
2019-10-23     1240.21      1257.63  1224.645333  1222.1490   2.496333   
2019-10-24     1259.11      1259.11  1229.290667  1222.9900   6.300667   
2020-02-13     1510.00      1513.39  1471.467333  1472.6400  -1.172667   
2020-02-14     1514.53      1518.73  1474.971333  1476.0685  -1.097167   
2020-02-18     1514.34      1519.44  1480.818667  1478.0645   2.754167   
2020-02-19     1527.20      1524.87  1485.776667  1480.1955   5.581167   
2020-03-02     1351.39      1386.32  1456.760000  1459.0270  -2.267000   
2020-03-03     1397.68      1337.72  1445.364000  1451.7830  -6.419000   
2020-04-08     1203.10      1207.00  1128.777333  1126.9865   1.790833   
2020-04-09     1218.18      1206.57  1135.104000  1131.7375   3.366500   
2020-06-26     1432.63      1362.54  1433.942000  1433.9940  -0.052000   
2020-06-29     1360.34      1397.17  1430.550667  1432.1090  -1.558333   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-11           1.0            1.0         0.0  
2019-01-14           1.0            0.0         1.0  
2019-02-27           0.0           -1.0         0.0  
2019-02-28           0.0            0.0        -1.0  
2019-03-05           1.0            1.0         0.0  
2019-03-06           1.0            0.0         1.0  
2019-04-11           0.0           -1.0         0.0  
2019-04-12           0.0            0.0        -1.0  
2019-04-17           1.0            1.0         0.0  
2019-04-18           1.0            0.0         1.0  
2019-05-09           0.0           -1.0         0.0  
2019-05-10           0.0            0.0        -1.0  
2019-06-25           1.0            1.0         0.0  
2019-06-26           1.0            0.0         1.0  
2019-08-20           0.0           -1.0         0.0  
2019-08-21           0.0            0.0        -1.0  
2019-08-30           1.0            1.0         0.0  
2019-09-03           0.0           -1.0         1.0  
2019-09-04           0.0            0.0        -1.0  
2019-09-06           1.0            1.0         0.0  
2019-09-09           1.0            0.0         1.0  
2019-10-07           0.0           -1.0         0.0  
2019-10-08           0.0            0.0        -1.0  
2019-10-23           1.0            1.0         0.0  
2019-10-24           1.0            0.0         1.0  
2020-02-13           0.0           -1.0         0.0  
2020-02-14           0.0            0.0        -1.0  
2020-02-18           1.0            1.0         0.0  
2020-02-19           1.0            0.0         1.0  
2020-03-02           0.0           -1.0         0.0  
2020-03-03           0.0            0.0        -1.0  
2020-04-08           1.0            1.0         0.0  
2020-04-09           1.0            0.0         1.0  
2020-06-26           0.0           -1.0         0.0  
2020-06-29           0.0            0.0        -1.0  

List the signal change and entry/exit points for SMA_007_SlowMA_25_FastMA_05
            open_price  close_price   fast_ma    slow_ma  ma_change  \
date                                                                  
2019-01-07     1080.97      1075.92  1055.820  1054.0832     1.7368   
2019-01-08     1086.00      1085.37  1063.902  1053.7148    10.1872   
2019-05-03     1177.41      1189.55  1204.908  1222.6644   -17.7564   
2019-05-06     1172.00      1193.46  1184.360  1223.3272   -38.9672   
2019-06-21     1109.86      1125.37  1108.442  1104.4604     3.9816   
2019-06-24     1120.00      1116.70  1113.004  1102.3772    10.6268   
2019-06-28     1077.23      1082.80  1088.806  1091.4588    -2.6528   
2019-07-01     1101.04      1100.00  1085.466  1089.9144    -4.4484   
2019-07-02     1104.83      1112.60  1090.470  1088.8360     1.6340   
2019-07-03     1118.50      1122.99  1099.004  1088.9580    10.0460   
2019-08-20     1195.35      1183.53  1179.350  1179.7852    -0.4352   
2019-08-21     1195.82      1191.58  1184.816  1181.5788     3.2372   
2019-08-22     1193.80      1191.52  1189.256  1183.3500     5.9060   
2019-08-23     1185.17      1153.58  1184.130  1184.2312    -0.1012   
2019-08-26     1159.45      1171.18  1178.278  1185.5100    -7.2320   
2019-09-05     1193.66      1212.19  1189.756  1182.9648     6.7912   
2019-09-06     1209.14      1206.32  1192.172  1182.7464     9.4256   
2019-10-02     1196.50      1177.92  1214.660  1214.7932    -0.1332   
2019-10-03     1183.34      1189.43  1204.088  1215.4204   -11.3324   
2019-10-16     1241.81      1243.00  1225.638  1221.5748     4.0632   
2019-10-17     1251.40      1252.80  1234.304  1222.2880    12.0160   
2020-02-25     1431.00      1386.32  1466.300  1475.7116    -9.4116   
2020-02-26     1394.98      1390.47  1439.420  1472.0404   -32.6204   
2020-04-08     1203.10      1207.00  1156.496  1154.0836     2.4124   
2020-04-09     1218.18      1206.57  1174.404  1149.7560    24.6480   
2020-06-26     1432.63      1362.54  1430.196  1431.4612    -1.2652   
2020-06-29     1360.34      1397.17  1419.498  1430.8184   -11.3204   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-07           1.0            1.0         0.0  
2019-01-08           1.0            0.0         1.0  
2019-05-03           0.0           -1.0         0.0  
2019-05-06           0.0            0.0        -1.0  
2019-06-21           1.0            1.0         0.0  
2019-06-24           1.0            0.0         1.0  
2019-06-28           0.0           -1.0         0.0  
2019-07-01           0.0            0.0        -1.0  
2019-07-02           1.0            1.0         0.0  
2019-07-03           1.0            0.0         1.0  
2019-08-20           0.0           -1.0         0.0  
2019-08-21           1.0            1.0        -1.0  
2019-08-22           1.0            0.0         1.0  
2019-08-23           0.0           -1.0         0.0  
2019-08-26           0.0            0.0        -1.0  
2019-09-05           1.0            1.0         0.0  
2019-09-06           1.0            0.0         1.0  
2019-10-02           0.0           -1.0         0.0  
2019-10-03           0.0            0.0        -1.0  
2019-10-16           1.0            1.0         0.0  
2019-10-17           1.0            0.0         1.0  
2020-02-25           0.0           -1.0         0.0  
2020-02-26           0.0            0.0        -1.0  
2020-04-08           1.0            1.0         0.0  
2020-04-09           1.0            0.0         1.0  
2020-06-26           0.0           -1.0         0.0  
2020-06-29           0.0            0.0        -1.0  

List the signal change and entry/exit points for SMA_008_SlowMA_25_FastMA_10
            open_price  close_price   fast_ma    slow_ma  ma_change  \
date                                                                  
2019-01-09     1087.99      1081.65  1059.355  1052.5948     6.7602   
2019-01-10     1074.94      1078.83  1062.453  1051.0936    11.3594   
2019-05-07     1185.81      1178.86  1220.167  1222.5224    -2.3554   
2019-05-08     1177.29      1170.78  1211.240  1221.1320    -9.8920   
2019-06-25     1115.08      1087.58  1100.290  1100.0940     0.1960   
2019-06-26     1091.00      1080.32  1100.412  1097.1292     3.2828   
2019-08-23     1185.17      1153.58  1180.466  1184.2312    -3.7652   
2019-08-26     1159.45      1171.18  1180.134  1185.5100    -5.3760   
2019-09-09     1207.08      1205.27  1187.612  1183.1044     4.5076   
2019-09-10     1196.09      1205.70  1191.064  1185.1424     5.9216   
2019-10-07     1207.00      1208.25  1214.621  1216.7980    -2.1770   
2019-10-08     1198.77      1190.13  1211.801  1217.6212    -5.8202   
2019-10-18     1254.69      1244.41  1222.618  1222.4632     0.1548   
2019-10-21     1248.70      1244.28  1226.221  1222.9692     3.2518   
2020-02-27     1359.14      1314.95  1458.848  1465.2716    -6.4236   
2020-02-28     1274.31      1339.25  1441.434  1459.4540   -18.0200   
2020-04-09     1218.18      1206.57  1150.967  1149.7560     1.2110   
2020-04-13     1201.50      1210.41  1160.982  1146.3428    14.6392   
2020-06-29     1360.34      1397.17  1430.592  1430.8184    -0.2264   
2020-06-30     1396.88      1418.05  1427.750  1430.6856    -2.9356   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-09           1.0            1.0         0.0  
2019-01-10           1.0            0.0         1.0  
2019-05-07           0.0           -1.0         0.0  
2019-05-08           0.0            0.0        -1.0  
2019-06-25           1.0            1.0         0.0  
2019-06-26           1.0            0.0         1.0  
2019-08-23           0.0           -1.0         0.0  
2019-08-26           0.0            0.0        -1.0  
2019-09-09           1.0            1.0         0.0  
2019-09-10           1.0            0.0         1.0  
2019-10-07           0.0           -1.0         0.0  
2019-10-08           0.0            0.0        -1.0  
2019-10-18           1.0            1.0         0.0  
2019-10-21           1.0            0.0         1.0  
2020-02-27           0.0           -1.0         0.0  
2020-02-28           0.0            0.0        -1.0  
2020-04-09           1.0            1.0         0.0  
2020-04-13           1.0            0.0         1.0  
2020-06-29           0.0           -1.0         0.0  
2020-06-30           0.0            0.0        -1.0  

List the signal change and entry/exit points for SMA_009_SlowMA_25_FastMA_15
            open_price  close_price      fast_ma    slow_ma  ma_change  \
date                                                                     
2019-01-14     1053.34      1051.51  1050.952000  1050.1108   0.841200   
2019-01-15     1058.01      1086.51  1057.302667  1051.7080   5.594667   
2019-04-12     1215.62      1222.73  1200.690667  1201.1992  -0.508533   
2019-04-15     1224.09      1226.53  1202.634000  1203.0900  -0.456000   
2019-04-16     1230.00      1231.91  1205.438667  1204.4764   0.962267   
2019-04-17     1237.00      1240.14  1209.580667  1206.1196   3.461067   
2019-05-10     1168.84      1167.64  1215.494000  1217.3460  -1.852000   
2019-05-13     1145.24      1136.59  1207.682667  1214.3516  -6.668933   
2019-06-28     1077.23      1082.80  1093.763333  1091.4588   2.304533   
2019-07-01     1101.04      1100.00  1094.912667  1089.9144   4.998267   
2019-08-22     1193.80      1191.52  1182.948667  1183.3500  -0.401333   
2019-08-23     1185.17      1153.58  1180.099333  1184.2312  -4.131867   
2019-09-06     1209.14      1206.32  1184.714000  1182.7464   1.967600   
2019-09-09     1207.08      1205.27  1186.451333  1183.1044   3.346933   
2019-10-09     1201.33      1202.40  1216.134667  1218.4264  -2.291733   
2019-10-10     1198.60      1209.47  1214.182667  1218.3176  -4.134933   
2019-10-23     1240.21      1257.63  1224.645333  1224.4212   0.224133   
2019-10-24     1259.11      1259.11  1229.290667  1225.2356   4.055067   
2020-03-03     1397.68      1337.72  1445.364000  1452.4996  -7.135600   
2020-03-04     1358.96      1381.60  1436.800000  1449.7436 -12.943600   
2020-04-14     1239.97      1265.23  1158.657333  1148.3204  10.336933   
2020-04-15     1246.51      1257.30  1167.143333  1147.6056  19.537733   
2020-06-29     1360.34      1397.17  1430.550667  1430.8184  -0.267733   
2020-06-30     1396.88      1418.05  1428.282000  1430.6856  -2.403600   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-14           1.0            1.0         0.0  
2019-01-15           1.0            0.0         1.0  
2019-04-12           0.0           -1.0         0.0  
2019-04-15           0.0            0.0        -1.0  
2019-04-16           1.0            1.0         0.0  
2019-04-17           1.0            0.0         1.0  
2019-05-10           0.0           -1.0         0.0  
2019-05-13           0.0            0.0        -1.0  
2019-06-28           1.0            1.0         0.0  
2019-07-01           1.0            0.0         1.0  
2019-08-22           0.0           -1.0         0.0  
2019-08-23           0.0            0.0        -1.0  
2019-09-06           1.0            1.0         0.0  
2019-09-09           1.0            0.0         1.0  
2019-10-09           0.0           -1.0         0.0  
2019-10-10           0.0            0.0        -1.0  
2019-10-23           1.0            1.0         0.0  
2019-10-24           1.0            0.0         1.0  
2020-03-03           0.0           -1.0         0.0  
2020-03-04           0.0            0.0        -1.0  
2020-04-14           1.0            1.0         0.0  
2020-04-15           1.0            0.0         1.0  
2020-06-29           0.0           -1.0         0.0  
2020-06-30           0.0            0.0        -1.0  

List the signal change and entry/exit points for SMA_010_SlowMA_25_FastMA_20
            open_price  close_price    fast_ma    slow_ma  ma_change  \
date                                                                   
2019-01-17     1087.99      1099.12  1054.9230  1054.6600     0.2630   
2019-01-18     1108.59      1107.30  1058.5150  1056.0028     2.5122   
2019-03-06     1171.76      1164.94  1126.5530  1126.6740    -0.1210   
2019-03-07     1160.50      1150.85  1127.9510  1128.7884    -0.8374   
2019-03-08     1133.90      1149.97  1130.1540  1129.7516     0.4024   
2019-03-11     1152.00      1179.26  1133.9980  1132.1772     1.8208   
2019-04-18     1245.00      1241.47  1207.9030  1208.0772    -0.1742   
2019-04-22     1236.67      1253.76  1210.2085  1210.6156    -0.4071   
2019-04-24     1270.59      1260.05  1217.3795  1216.2008     1.1787   
2019-04-25     1270.30      1267.34  1221.8460  1217.8372     4.0088   
2019-05-14     1142.32      1124.86  1210.3690  1211.0148    -0.6458   
2019-05-15     1122.55      1170.80  1207.3135  1209.7392    -2.4257   
2019-07-02     1104.83      1112.60  1088.9910  1088.8360     0.1550   
2019-07-03     1118.50      1122.99  1092.9085  1088.9580     3.9505   
2019-08-27     1183.00      1170.82  1183.4895  1186.4208    -2.9313   
2019-08-28     1164.87      1173.75  1181.2670  1187.7816    -6.5146   
2019-09-05     1193.66      1212.19  1183.2140  1182.9648     0.2492   
2019-09-06     1209.14      1206.32  1183.2205  1182.7464     0.4741   
2019-09-11     1203.89      1220.00  1186.7625  1187.0992    -0.3367   
2019-09-12     1223.47      1234.97  1190.2985  1189.4616     0.8369   
2019-09-13     1232.11      1240.03  1193.8340  1190.8152     3.0188   
2019-10-11     1224.03      1215.71  1218.0680  1218.6932    -0.6252   
2019-10-14     1213.89      1217.77  1217.3750  1219.1932    -1.8182   
2019-10-29     1276.00      1260.66  1231.0325  1230.4788     0.5537   
2019-10-30     1255.15      1260.70  1235.1715  1231.0692     4.1023   
2020-03-03     1397.68      1337.72  1451.7830  1452.4996    -0.7166   
2020-03-04     1358.96      1381.60  1448.5925  1449.7436    -1.1511   
2020-04-15     1246.51      1257.30  1148.1180  1147.6056     0.5124   
2020-04-16     1267.14      1257.43  1156.4300  1149.4668     6.9632   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-17           1.0            1.0         0.0  
2019-01-18           1.0            0.0         1.0  
2019-03-06           0.0           -1.0         0.0  
2019-03-07           0.0            0.0        -1.0  
2019-03-08           1.0            1.0         0.0  
2019-03-11           1.0            0.0         1.0  
2019-04-18           0.0           -1.0         0.0  
2019-04-22           0.0            0.0        -1.0  
2019-04-24           1.0            1.0         0.0  
2019-04-25           1.0            0.0         1.0  
2019-05-14           0.0           -1.0         0.0  
2019-05-15           0.0            0.0        -1.0  
2019-07-02           1.0            1.0         0.0  
2019-07-03           1.0            0.0         1.0  
2019-08-27           0.0           -1.0         0.0  
2019-08-28           0.0            0.0        -1.0  
2019-09-05           1.0            1.0         0.0  
2019-09-06           1.0            0.0         1.0  
2019-09-11           0.0           -1.0         0.0  
2019-09-12           1.0            1.0        -1.0  
2019-09-13           1.0            0.0         1.0  
2019-10-11           0.0           -1.0         0.0  
2019-10-14           0.0            0.0        -1.0  
2019-10-29           1.0            1.0         0.0  
2019-10-30           1.0            0.0         1.0  
2020-03-03           0.0           -1.0         0.0  
2020-03-04           0.0            0.0        -1.0  
2020-04-15           1.0            1.0         0.0  
2020-04-16           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_011_SlowMA_30_FastMA_05
            open_price  close_price   fast_ma      slow_ma  ma_change  \
date                                                                    
2019-01-07     1080.97      1075.92  1055.820  1054.187333   1.632667   
2019-01-08     1086.00      1085.37  1063.902  1055.585333   8.316667   
2019-05-03     1177.41      1189.55  1204.908  1217.058667 -12.150667   
2019-05-06     1172.00      1193.46  1184.360  1216.585667 -32.225667   
2019-06-24     1120.00      1116.70  1113.004  1111.498667   1.505333   
2019-06-25     1115.08      1087.58  1109.472  1109.865000  -0.393000   
2019-06-26     1091.00      1080.32  1104.634  1108.380333  -3.746333   
2019-07-03     1118.50      1122.99  1099.004  1097.441667   1.562333   
2019-07-05     1119.37      1132.66  1110.210  1096.668667  13.541333   
2019-08-26     1159.45      1171.18  1178.278  1178.531667  -0.253667   
2019-08-27     1183.00      1170.82  1175.736  1179.110333  -3.374333   
2019-09-05     1193.66      1212.19  1189.756  1188.110667   1.645333   
2019-09-06     1209.14      1206.32  1192.172  1190.456667   1.715333   
2019-10-03     1183.34      1189.43  1204.088  1208.212000  -4.124000   
2019-10-04     1194.29      1210.96  1201.090  1208.860000  -7.770000   
2019-10-16     1241.81      1243.00  1225.638  1219.628333   6.009667   
2019-10-17     1251.40      1252.80  1234.304  1220.982000  13.322000   
2020-02-25     1431.00      1386.32  1466.300  1471.076333  -4.776333   
2020-02-26     1394.98      1390.47  1439.420  1469.424333 -30.004333   
2020-04-13     1201.50      1210.41  1197.946  1179.157000  18.789000   
2020-04-14     1239.97      1265.23  1214.354  1175.120667  39.233333   
2020-06-29     1360.34      1397.17  1419.498  1425.306333  -5.808333   
2020-06-30     1396.88      1418.05  1410.312  1426.402000 -16.090000   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-07           1.0            1.0         0.0  
2019-01-08           1.0            0.0         1.0  
2019-05-03           0.0           -1.0         0.0  
2019-05-06           0.0            0.0        -1.0  
2019-06-24           1.0            1.0         0.0  
2019-06-25           0.0           -1.0         1.0  
2019-06-26           0.0            0.0        -1.0  
2019-07-03           1.0            1.0         0.0  
2019-07-05           1.0            0.0         1.0  
2019-08-26           0.0           -1.0         0.0  
2019-08-27           0.0            0.0        -1.0  
2019-09-05           1.0            1.0         0.0  
2019-09-06           1.0            0.0         1.0  
2019-10-03           0.0           -1.0         0.0  
2019-10-04           0.0            0.0        -1.0  
2019-10-16           1.0            1.0         0.0  
2019-10-17           1.0            0.0         1.0  
2020-02-25           0.0           -1.0         0.0  
2020-02-26           0.0            0.0        -1.0  
2020-04-13           1.0            1.0         0.0  
2020-04-14           1.0            0.0         1.0  
2020-06-29           0.0           -1.0         0.0  
2020-06-30           0.0            0.0        -1.0  

List the signal change and entry/exit points for SMA_012_SlowMA_30_FastMA_10
            open_price  close_price   fast_ma      slow_ma  ma_change  \
date                                                                    
2019-01-09     1087.99      1081.65  1059.355  1057.303667   2.051333   
2019-01-10     1074.94      1078.83  1062.453  1058.066667   4.386333   
2019-05-08     1177.29      1170.78  1211.240  1215.333000  -4.093000   
2019-05-09     1162.60      1167.97  1201.303  1214.998333 -13.695333   
2019-07-02     1104.83      1112.60  1099.971  1098.490000   1.481000   
2019-07-03     1118.50      1122.99  1101.819  1097.441667   4.377333   
2019-08-27     1183.00      1170.82  1177.543  1179.110333  -1.567333   
2019-08-28     1164.87      1173.75  1178.493  1180.010667  -1.517667   
2019-09-10     1196.09      1205.70  1191.064  1187.920333   3.143667   
2019-09-11     1203.89      1220.00  1195.982  1187.653667   8.328333   
2019-10-09     1201.33      1202.40  1207.447  1212.366667  -4.919667   
2019-10-10     1198.60      1209.47  1204.165  1213.557333  -9.392333   
2019-10-18     1254.69      1244.41  1222.618  1222.251667   0.366333   
2019-10-21     1248.70      1244.28  1226.221  1223.552000   2.669000   
2020-02-27     1359.14      1314.95  1458.848  1465.569667  -6.721667   
2020-02-28     1274.31      1339.25  1441.434  1462.238000 -20.804000   
2020-04-15     1246.51      1257.30  1182.409  1172.440000   9.969000   
2020-04-16     1267.14      1257.43  1197.942  1168.301000  29.641000   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-09           1.0            1.0         0.0  
2019-01-10           1.0            0.0         1.0  
2019-05-08           0.0           -1.0         0.0  
2019-05-09           0.0            0.0        -1.0  
2019-07-02           1.0            1.0         0.0  
2019-07-03           1.0            0.0         1.0  
2019-08-27           0.0           -1.0         0.0  
2019-08-28           0.0            0.0        -1.0  
2019-09-10           1.0            1.0         0.0  
2019-09-11           1.0            0.0         1.0  
2019-10-09           0.0           -1.0         0.0  
2019-10-10           0.0            0.0        -1.0  
2019-10-18           1.0            1.0         0.0  
2019-10-21           1.0            0.0         1.0  
2020-02-27           0.0           -1.0         0.0  
2020-02-28           0.0            0.0        -1.0  
2020-04-15           1.0            1.0         0.0  
2020-04-16           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_013_SlowMA_30_FastMA_15
            open_price  close_price      fast_ma      slow_ma  ma_change  \
date                                                                       
2019-01-15     1058.01      1086.51  1057.302667  1056.861333   0.441333   
2019-01-16     1090.00      1089.51  1064.292000  1056.190000   8.102000   
2019-05-13     1145.24      1136.59  1207.682667  1213.500667  -5.818000   
2019-05-14     1142.32      1124.86  1197.967333  1211.030000 -13.062667   
2019-07-03     1118.50      1122.99  1099.942667  1097.441667   2.501000   
2019-07-05     1119.37      1132.66  1102.719333  1096.668667   6.050667   
2019-08-29     1186.42      1194.24  1180.236667  1181.577333  -1.340667   
2019-08-30     1200.35      1190.53  1180.345333  1183.543333  -3.198000   
2019-09-11     1203.89      1220.00  1189.233333  1187.653667   1.579667   
2019-09-12     1223.47      1234.97  1192.126000  1188.212667   3.913333   
2019-10-11     1224.03      1215.71  1213.240667  1214.273000  -1.032333   
2019-10-14     1213.89      1217.77  1212.112667  1215.181000  -3.068333   
2019-10-24     1259.11      1259.11  1229.290667  1226.794333   2.496333   
2019-10-25     1252.00      1264.30  1232.846667  1227.603333   5.243333   
2020-03-02     1351.39      1386.32  1456.760000  1460.110000  -3.350000   
2020-03-03     1397.68      1337.72  1445.364000  1455.383333 -10.019333   
2020-04-16     1267.14      1257.43  1177.530667  1168.301000   9.229667   
2020-04-17     1281.70      1279.00  1185.269333  1167.109000  18.160333   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-15           1.0            1.0         0.0  
2019-01-16           1.0            0.0         1.0  
2019-05-13           0.0           -1.0         0.0  
2019-05-14           0.0            0.0        -1.0  
2019-07-03           1.0            1.0         0.0  
2019-07-05           1.0            0.0         1.0  
2019-08-29           0.0           -1.0         0.0  
2019-08-30           0.0            0.0        -1.0  
2019-09-11           1.0            1.0         0.0  
2019-09-12           1.0            0.0         1.0  
2019-10-11           0.0           -1.0         0.0  
2019-10-14           0.0            0.0        -1.0  
2019-10-24           1.0            1.0         0.0  
2019-10-25           1.0            0.0         1.0  
2020-03-02           0.0           -1.0         0.0  
2020-03-03           0.0            0.0        -1.0  
2020-04-16           1.0            1.0         0.0  
2020-04-17           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_014_SlowMA_30_FastMA_20
            open_price  close_price    fast_ma      slow_ma  ma_change  \
date                                                                     
2019-01-18     1108.59      1107.30  1058.5150  1057.109667   1.405333   
2019-01-22     1096.00      1078.63  1061.2675  1057.128000   4.139500   
2019-05-14     1142.32      1124.86  1210.3690  1211.030000  -0.661000   
2019-05-15     1122.55      1170.80  1207.3135  1209.872000  -2.558500   
2019-07-05     1119.37      1132.66  1097.1535  1096.668667   0.484833   
2019-07-08     1125.87      1116.79  1099.5745  1095.717000   3.857500   
2019-08-29     1186.42      1194.24  1180.3900  1181.577333  -1.187333   
2019-08-30     1200.35      1190.53  1180.1005  1183.543333  -3.442833   
2019-09-12     1223.47      1234.97  1190.2985  1188.212667   2.085833   
2019-09-13     1232.11      1240.03  1193.8340  1189.154333   4.679667   
2019-10-16     1241.81      1243.00  1218.5105  1219.628333  -1.117833   
2019-10-17     1251.40      1252.80  1219.2130  1220.982000  -1.769000   
2019-10-29     1276.00      1260.66  1231.0325  1230.541000   0.491500   
2019-10-30     1255.15      1260.70  1235.1715  1231.476000   3.695500   
2020-02-28     1274.31      1339.25  1461.3500  1462.238000  -0.888000   
2020-03-02     1351.39      1386.32  1459.0270  1460.110000  -1.083000   
2020-04-20     1269.89      1261.15  1174.4435  1165.956000   8.487500   
2020-04-21     1242.71      1212.16  1182.3450  1165.835000  16.510000   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-18           1.0            1.0         0.0  
2019-01-22           1.0            0.0         1.0  
2019-05-14           0.0           -1.0         0.0  
2019-05-15           0.0            0.0        -1.0  
2019-07-05           1.0            1.0         0.0  
2019-07-08           1.0            0.0         1.0  
2019-08-29           0.0           -1.0         0.0  
2019-08-30           0.0            0.0        -1.0  
2019-09-12           1.0            1.0         0.0  
2019-09-13           1.0            0.0         1.0  
2019-10-16           0.0           -1.0         0.0  
2019-10-17           0.0            0.0        -1.0  
2019-10-29           1.0            1.0         0.0  
2019-10-30           1.0            0.0         1.0  
2020-02-28           0.0           -1.0         0.0  
2020-03-02           0.0            0.0        -1.0  
2020-04-20           1.0            1.0         0.0  
2020-04-21           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_015_SlowMA_35_FastMA_05
            open_price  close_price   fast_ma      slow_ma  ma_change  \
date                                                                    
2019-01-07     1080.97      1075.92  1055.820  1053.639714   2.180286   
2019-01-08     1086.00      1085.37  1063.902  1054.519429   9.382571   
2019-05-03     1177.41      1189.55  1204.908  1215.875143 -10.967143   
2019-05-06     1172.00      1193.46  1184.360  1215.965429 -31.605429   
2019-07-05     1119.37      1132.66  1110.210  1105.951143   4.258857   
2019-07-08     1125.87      1116.79  1117.008  1104.016571  12.991429   
2019-08-28     1164.87      1173.75  1172.170  1175.441429  -3.271429   
2019-08-29     1186.42      1194.24  1172.714  1176.874571  -4.160571   
2019-08-30     1200.35      1190.53  1180.104  1178.165714   1.938286   
2019-09-03     1181.85      1169.55  1179.778  1178.709714   1.068286   
2019-10-03     1183.34      1189.43  1204.088  1204.869714  -0.781714   
2019-10-04     1194.29      1210.96  1201.090  1206.059429  -4.969429   
2019-10-15     1221.50      1242.24  1217.518  1212.200286   5.317714   
2019-10-16     1241.81      1243.00  1225.638  1214.262571  11.375429   
2020-02-26     1394.98      1390.47  1439.420  1462.047429 -22.627429   
2020-02-27     1359.14      1314.95  1399.012  1459.757143 -60.745143   
2020-04-14     1239.97      1265.23  1214.354  1202.026571  12.327429   
2020-04-15     1246.51      1257.30  1229.302  1198.340286  30.961714   
2020-06-30     1396.88      1418.05  1410.312  1418.019143  -7.707143   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-07           1.0            1.0         0.0  
2019-01-08           1.0            0.0         1.0  
2019-05-03           0.0           -1.0         0.0  
2019-05-06           0.0            0.0        -1.0  
2019-07-05           1.0            1.0         0.0  
2019-07-08           1.0            0.0         1.0  
2019-08-28           0.0           -1.0         0.0  
2019-08-29           0.0            0.0        -1.0  
2019-08-30           1.0            1.0         0.0  
2019-09-03           1.0            0.0         1.0  
2019-10-03           0.0           -1.0         0.0  
2019-10-04           0.0            0.0        -1.0  
2019-10-15           1.0            1.0         0.0  
2019-10-16           1.0            0.0         1.0  
2020-02-26           0.0           -1.0         0.0  
2020-02-27           0.0            0.0        -1.0  
2020-04-14           1.0            1.0         0.0  
2020-04-15           1.0            0.0         1.0  
2020-06-30           0.0           -1.0         0.0  

List the signal change and entry/exit points for SMA_016_SlowMA_35_FastMA_10
            open_price  close_price   fast_ma      slow_ma  ma_change  \
date                                                                    
2019-01-09     1087.99      1081.65  1059.355  1054.822286   4.532714   
2019-01-10     1074.94      1078.83  1062.453  1055.124000   7.329000   
2019-05-08     1177.29      1170.78  1211.240  1214.783429  -3.543429   
2019-05-09     1162.60      1167.97  1201.303  1213.113143 -11.810143   
2019-07-09     1110.32      1124.29  1103.666  1102.745429   0.920571   
2019-07-10     1132.32      1140.91  1108.999  1102.638286   6.360714   
2019-09-04     1179.45      1182.27  1178.902  1179.532857  -0.630857   
2019-09-05     1193.66      1212.19  1180.963  1181.402857  -0.439857   
2019-09-09     1207.08      1205.27  1187.612  1185.197143   2.414857   
2019-09-10     1196.09      1205.70  1191.064  1187.096857   3.967143   
2019-10-10     1198.60      1209.47  1204.165  1207.644857  -3.479857   
2019-10-11     1224.03      1215.71  1203.141  1208.336000  -5.195000   
2019-10-17     1251.40      1252.80  1219.273  1216.521143   2.751857   
2019-10-18     1254.69      1244.41  1222.618  1217.954571   4.663429   
2020-02-27     1359.14      1314.95  1458.848  1459.757143  -0.909143   
2020-02-28     1274.31      1339.25  1441.434  1457.877429 -16.443429   
2020-04-16     1267.14      1257.43  1197.942  1194.539143   3.402857   
2020-04-17     1281.70      1279.00  1214.139  1193.512000  20.627000   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-09           1.0            1.0         0.0  
2019-01-10           1.0            0.0         1.0  
2019-05-08           0.0           -1.0         0.0  
2019-05-09           0.0            0.0        -1.0  
2019-07-09           1.0            1.0         0.0  
2019-07-10           1.0            0.0         1.0  
2019-09-04           0.0           -1.0         0.0  
2019-09-05           0.0            0.0        -1.0  
2019-09-09           1.0            1.0         0.0  
2019-09-10           1.0            0.0         1.0  
2019-10-10           0.0           -1.0         0.0  
2019-10-11           0.0            0.0        -1.0  
2019-10-17           1.0            1.0         0.0  
2019-10-18           1.0            0.0         1.0  
2020-02-27           0.0           -1.0         0.0  
2020-02-28           0.0            0.0        -1.0  
2020-04-16           1.0            1.0         0.0  
2020-04-17           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_017_SlowMA_35_FastMA_15
            open_price  close_price      fast_ma      slow_ma  ma_change  \
date                                                                       
2019-01-16     1090.00      1089.51  1064.292000  1059.712571   4.579429   
2019-01-17     1087.99      1099.12  1067.710000  1060.946286   6.763714   
2019-05-13     1145.24      1136.59  1207.682667  1209.126000  -1.443333   
2019-05-14     1142.32      1124.86  1197.967333  1207.054000  -9.086667   
2019-07-08     1125.87      1116.79  1104.752000  1104.016571   0.735429   
2019-07-09     1110.32      1124.29  1106.778667  1102.745429   4.033238   
2019-09-04     1179.45      1182.27  1179.051333  1179.532857  -0.481524   
2019-09-05     1193.66      1212.19  1182.247333  1181.402857   0.844476   
2019-09-06     1209.14      1206.32  1184.714000  1183.090857   1.623143   
2019-09-10     1196.09      1205.70  1186.802000  1187.096857  -0.294857   
2019-09-11     1203.89      1220.00  1189.233333  1189.152571   0.080762   
2019-09-12     1223.47      1234.97  1192.126000  1191.873714   0.252286   
2019-10-16     1241.81      1243.00  1213.510667  1214.262571  -0.751905   
2019-10-17     1251.40      1252.80  1214.211333  1216.521143  -2.309810   
2019-10-23     1240.21      1257.63  1224.645333  1223.690571   0.954762   
2019-10-24     1259.11      1259.11  1229.290667  1225.031143   4.259524   
2020-03-02     1351.39      1386.32  1456.760000  1456.921143  -0.161143   
2020-03-03     1397.68      1337.72  1445.364000  1454.314286  -8.950286   
2020-04-20     1269.89      1261.15  1195.328667  1191.280571   4.048095   
2020-04-21     1242.71      1212.16  1199.718667  1186.304571  13.414095   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-16           1.0            1.0         0.0  
2019-01-17           1.0            0.0         1.0  
2019-05-13           0.0           -1.0         0.0  
2019-05-14           0.0            0.0        -1.0  
2019-07-08           1.0            1.0         0.0  
2019-07-09           1.0            0.0         1.0  
2019-09-04           0.0           -1.0         0.0  
2019-09-05           1.0            1.0        -1.0  
2019-09-06           1.0            0.0         1.0  
2019-09-10           0.0           -1.0         0.0  
2019-09-11           1.0            1.0        -1.0  
2019-09-12           1.0            0.0         1.0  
2019-10-16           0.0           -1.0         0.0  
2019-10-17           0.0            0.0        -1.0  
2019-10-23           1.0            1.0         0.0  
2019-10-24           1.0            0.0         1.0  
2020-03-02           0.0           -1.0         0.0  
2020-03-03           0.0            0.0        -1.0  
2020-04-20           1.0            1.0         0.0  
2020-04-21           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_018_SlowMA_35_FastMA_20
            open_price  close_price    fast_ma      slow_ma  ma_change  \
date                                                                     
2019-01-23     1086.86      1084.41  1065.9255  1061.851714   4.073786   
2019-01-24     1082.51      1084.00  1070.8920  1061.118857   9.773143   
2019-05-16     1171.84      1184.50  1204.5315  1206.695429  -2.163929   
2019-05-17     1175.83      1168.78  1200.8970  1206.595714  -5.698714   
2019-07-10     1132.32      1140.91  1104.6445  1102.638286   2.006214   
2019-07-11     1146.16      1144.08  1107.8935  1102.342286   5.551214   
2019-09-09     1207.08      1205.27  1184.0390  1185.197143  -1.158143   
2019-09-10     1196.09      1205.70  1185.5990  1187.096857  -1.497857   
2019-09-16     1230.44      1231.63  1196.4550  1194.459429   1.995571   
2019-09-17     1231.63      1229.88  1197.9270  1194.117714   3.809286   
2019-10-23     1240.21      1257.63  1222.1490  1223.690571  -1.541571   
2019-10-24     1259.11      1259.11  1222.9900  1225.031143  -2.041143   
2019-10-29     1276.00      1260.66  1231.0325  1230.649714   0.382786   
2019-10-30     1255.15      1260.70  1235.1715  1231.812571   3.358929   
2020-03-03     1397.68      1337.72  1451.7830  1454.314286  -2.531286   
2020-03-04     1358.96      1381.60  1448.5925  1452.644857  -4.052357   
2020-04-22     1241.11      1258.41  1188.7650  1184.038571   4.726429   
2020-04-23     1265.74      1271.17  1197.2425  1180.883429  16.359071   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-23           1.0            1.0         0.0  
2019-01-24           1.0            0.0         1.0  
2019-05-16           0.0           -1.0         0.0  
2019-05-17           0.0            0.0        -1.0  
2019-07-10           1.0            1.0         0.0  
2019-07-11           1.0            0.0         1.0  
2019-09-09           0.0           -1.0         0.0  
2019-09-10           0.0            0.0        -1.0  
2019-09-16           1.0            1.0         0.0  
2019-09-17           1.0            0.0         1.0  
2019-10-23           0.0           -1.0         0.0  
2019-10-24           0.0            0.0        -1.0  
2019-10-29           1.0            1.0         0.0  
2019-10-30           1.0            0.0         1.0  
2020-03-03           0.0           -1.0         0.0  
2020-03-04           0.0            0.0        -1.0  
2020-04-22           1.0            1.0         0.0  
2020-04-23           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_019_SlowMA_40_FastMA_05
            open_price  close_price   fast_ma     slow_ma  ma_change  \
date                                                                   
2019-01-08     1086.00      1085.37  1063.902  1055.79350    8.10850   
2019-01-09     1087.99      1081.65  1069.296  1055.46900   13.82700   
2019-05-03     1177.41      1189.55  1204.908  1211.84250   -6.93450   
2019-05-06     1172.00      1193.46  1184.360  1212.92975  -28.56975   
2019-07-08     1125.87      1116.79  1117.008  1110.62425    6.38375   
2019-07-09     1110.32      1124.29  1121.866  1109.54050   12.32550   
2019-10-04     1194.29      1210.96  1201.090  1202.64450   -1.55450   
2019-10-07     1207.00      1208.25  1198.512  1203.12825   -4.61625   
2019-10-14     1213.89      1217.77  1207.096  1206.91500    0.18100   
2019-10-15     1221.50      1242.24  1217.518  1207.96000    9.55800   
2020-02-26     1394.98      1390.47  1439.420  1449.46925  -10.04925   
2020-02-27     1359.14      1314.95  1399.012  1448.85025  -49.83825   
2020-04-16     1267.14      1257.43  1239.388  1225.14925   14.23875   
2020-04-17     1281.70      1279.00  1253.874  1219.19950   34.67450   
2020-06-30     1396.88      1418.05  1410.312  1412.05825   -1.74625   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-08           1.0            1.0         0.0  
2019-01-09           1.0            0.0         1.0  
2019-05-03           0.0           -1.0         0.0  
2019-05-06           0.0            0.0        -1.0  
2019-07-08           1.0            1.0         0.0  
2019-07-09           1.0            0.0         1.0  
2019-10-04           0.0           -1.0         0.0  
2019-10-07           0.0            0.0        -1.0  
2019-10-14           1.0            1.0         0.0  
2019-10-15           1.0            0.0         1.0  
2020-02-26           0.0           -1.0         0.0  
2020-02-27           0.0            0.0        -1.0  
2020-04-16           1.0            1.0         0.0  
2020-04-17           1.0            0.0         1.0  
2020-06-30           0.0           -1.0         0.0  

List the signal change and entry/exit points for SMA_020_SlowMA_40_FastMA_10
            open_price  close_price   fast_ma     slow_ma  ma_change  \
date                                                                   
2019-01-09     1087.99      1081.65  1059.355  1055.46900    3.88600   
2019-01-10     1074.94      1078.83  1062.453  1055.51425    6.93875   
2019-05-08     1177.29      1170.78  1211.240  1212.25800   -1.01800   
2019-05-09     1162.60      1167.97  1201.303  1211.48075  -10.17775   
2019-07-11     1146.16      1144.08  1115.375  1110.12900    5.24600   
2019-07-12     1142.93      1145.34  1122.246  1109.49250   12.75350   
2019-10-10     1198.60      1209.47  1204.165  1204.79125   -0.62625   
2019-10-11     1224.03      1215.71  1203.141  1205.95100   -2.81000   
2019-10-16     1241.81      1243.00  1212.936  1209.44675    3.48925   
2019-10-17     1251.40      1252.80  1219.273  1210.97725    8.29575   
2020-02-28     1274.31      1339.25  1441.434  1448.84675   -7.41275   
2020-03-02     1351.39      1386.32  1428.193  1449.28775  -21.09475   
2020-04-20     1269.89      1261.15  1230.984  1213.64175   17.34225   
2020-04-21     1242.71      1212.16  1233.881  1208.44925   25.43175   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-09           1.0            1.0         0.0  
2019-01-10           1.0            0.0         1.0  
2019-05-08           0.0           -1.0         0.0  
2019-05-09           0.0            0.0        -1.0  
2019-07-11           1.0            1.0         0.0  
2019-07-12           1.0            0.0         1.0  
2019-10-10           0.0           -1.0         0.0  
2019-10-11           0.0            0.0        -1.0  
2019-10-16           1.0            1.0         0.0  
2019-10-17           1.0            0.0         1.0  
2020-02-28           0.0           -1.0         0.0  
2020-03-02           0.0            0.0        -1.0  
2020-04-20           1.0            1.0         0.0  
2020-04-21           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_021_SlowMA_40_FastMA_15
            open_price  close_price      fast_ma     slow_ma  ma_change  \
date                                                                      
2019-01-15     1058.01      1086.51  1057.302667  1056.77875   0.523917   
2019-01-16     1090.00      1089.51  1064.292000  1057.24025   7.051750   
2019-05-13     1145.24      1136.59  1207.682667  1209.51575  -1.833083   
2019-05-14     1142.32      1124.86  1197.967333  1207.92350  -9.956167   
2019-07-11     1146.16      1144.08  1111.794667  1110.12900   1.665667   
2019-07-12     1142.93      1145.34  1113.937333  1109.49250   4.444833   
2020-03-03     1397.68      1337.72  1445.364000  1448.69275  -3.328750   
2020-03-04     1358.96      1381.60  1436.800000  1448.28750 -11.487500   
2020-04-22     1241.11      1258.41  1206.149333  1205.25150   0.897833   
2020-04-23     1265.74      1271.17  1217.420667  1202.26900  15.151667   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-15           1.0            1.0         0.0  
2019-01-16           1.0            0.0         1.0  
2019-05-13           0.0           -1.0         0.0  
2019-05-14           0.0            0.0        -1.0  
2019-07-11           1.0            1.0         0.0  
2019-07-12           1.0            0.0         1.0  
2020-03-03           0.0           -1.0         0.0  
2020-03-04           0.0            0.0        -1.0  
2020-04-22           1.0            1.0         0.0  
2020-04-23           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_022_SlowMA_40_FastMA_20
            open_price  close_price    fast_ma     slow_ma  ma_change  \
date                                                                    
2019-01-22     1096.00      1078.63  1061.2675  1061.21300    0.05450   
2019-01-23     1086.86      1084.41  1065.9255  1062.23750    3.68800   
2019-05-16     1171.84      1184.50  1204.5315  1206.08375   -1.55225   
2019-05-17     1175.83      1168.78  1200.8970  1204.40000   -3.50300   
2019-07-12     1142.93      1145.34  1110.6100  1109.49250    1.11750   
2019-07-15     1145.34      1150.51  1113.8205  1108.64275    5.17775   
2020-03-05     1345.55      1314.76  1442.0280  1446.27875   -4.25075   
2020-03-06     1269.95      1295.74  1433.0165  1443.54625  -10.52975   
2020-04-24     1255.00      1276.60  1202.9265  1201.31025    1.61625   
2020-04-27     1292.00      1270.86  1210.9565  1199.60050   11.35600   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-22           1.0            1.0         0.0  
2019-01-23           1.0            0.0         1.0  
2019-05-16           0.0           -1.0         0.0  
2019-05-17           0.0            0.0        -1.0  
2019-07-12           1.0            1.0         0.0  
2019-07-15           1.0            0.0         1.0  
2020-03-05           0.0           -1.0         0.0  
2020-03-06           0.0            0.0        -1.0  
2020-04-24           1.0            1.0         0.0  
2020-04-27           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_023_SlowMA_45_FastMA_05
            open_price  close_price   fast_ma      slow_ma  ma_change  \
date                                                                    
2019-01-08     1086.00      1085.37  1063.902  1058.283333   5.618667   
2019-01-09     1087.99      1081.65  1069.296  1058.187111  11.108889   
2019-05-03     1177.41      1189.55  1204.908  1205.791556  -0.883556   
2019-05-06     1172.00      1193.46  1184.360  1206.790222 -22.430222   
2019-07-09     1110.32      1124.29  1121.866  1116.896222   4.969778   
2019-07-10     1132.32      1140.91  1127.528  1115.728444  11.799556   
2019-10-07     1207.00      1208.25  1198.512  1200.488000  -1.976000   
2019-10-08     1198.77      1190.13  1195.338  1201.274222  -5.936222   
2019-10-10     1198.60      1209.47  1204.242  1202.716000   1.526000   
2019-10-11     1224.03      1215.71  1205.192  1202.927556   2.264444   
2020-02-27     1359.14      1314.95  1399.012  1437.908667 -38.896667   
2020-02-28     1274.31      1339.25  1370.170  1437.655778 -67.485778   
2020-04-17     1281.70      1279.00  1253.874  1252.475556   1.398444   
2020-04-20     1269.89      1261.15  1264.022  1246.870222  17.151778   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-08           1.0            1.0         0.0  
2019-01-09           1.0            0.0         1.0  
2019-05-03           0.0           -1.0         0.0  
2019-05-06           0.0            0.0        -1.0  
2019-07-09           1.0            1.0         0.0  
2019-07-10           1.0            0.0         1.0  
2019-10-07           0.0           -1.0         0.0  
2019-10-08           0.0            0.0        -1.0  
2019-10-10           1.0            1.0         0.0  
2019-10-11           1.0            0.0         1.0  
2020-02-27           0.0           -1.0         0.0  
2020-02-28           0.0            0.0        -1.0  
2020-04-17           1.0            1.0         0.0  
2020-04-20           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_024_SlowMA_45_FastMA_10
            open_price  close_price   fast_ma      slow_ma  ma_change  \
date                                                                    
2019-01-09     1087.99      1081.65  1059.355  1058.187111   1.167889   
2019-01-10     1074.94      1078.83  1062.453  1058.350222   4.102778   
2019-05-09     1162.60      1167.97  1201.303  1207.458222  -6.155222   
2019-05-10     1168.84      1167.64  1190.325  1207.831333 -17.506333   
2019-07-11     1146.16      1144.08  1115.375  1114.955556   0.419444   
2019-07-12     1142.93      1145.34  1122.246  1114.390222   7.855778   
2019-10-14     1213.89      1217.77  1202.804  1203.569111  -0.765111   
2019-10-15     1221.50      1242.24  1206.428  1205.074444   1.353556   
2019-10-16     1241.81      1243.00  1212.936  1206.102667   6.833333   
2020-03-02     1351.39      1386.32  1428.193  1438.586667 -10.393667   
2020-03-03     1397.68      1337.72  1410.021  1438.036667 -28.015667   
2020-04-22     1241.11      1258.41  1241.466  1234.256889   7.209111   
2020-04-23     1265.74      1271.17  1247.883  1228.619111  19.263889   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-09           1.0            1.0         0.0  
2019-01-10           1.0            0.0         1.0  
2019-05-09           0.0           -1.0         0.0  
2019-05-10           0.0            0.0        -1.0  
2019-07-11           1.0            1.0         0.0  
2019-07-12           1.0            0.0         1.0  
2019-10-14           0.0           -1.0         0.0  
2019-10-15           1.0            1.0        -1.0  
2019-10-16           1.0            0.0         1.0  
2020-03-02           0.0           -1.0         0.0  
2020-03-03           0.0            0.0        -1.0  
2020-04-22           1.0            1.0         0.0  
2020-04-23           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_025_SlowMA_45_FastMA_15
            open_price  close_price      fast_ma      slow_ma  ma_change  \
date                                                                       
2019-01-16     1090.00      1089.51  1064.292000  1057.546444   6.745556   
2019-01-17     1087.99      1099.12  1067.710000  1058.037556   9.672444   
2019-05-14     1142.32      1124.86  1197.967333  1206.325111  -8.357778   
2019-05-15     1122.55      1170.80  1192.017333  1205.737333 -13.720000   
2019-07-15     1145.34      1150.51  1115.613333  1114.002222   1.611111   
2019-07-16     1146.73      1153.46  1118.064000  1113.687111   4.376889   
2020-03-04     1358.96      1381.60  1436.800000  1438.635778  -1.835778   
2020-03-05     1345.55      1314.76  1423.208667  1438.081333 -14.872667   
2020-04-24     1255.00      1276.60  1228.058667  1223.277111   4.781556   
2020-04-27     1292.00      1270.86  1239.936000  1218.552667  21.383333   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-16           1.0            1.0         0.0  
2019-01-17           1.0            0.0         1.0  
2019-05-14           0.0           -1.0         0.0  
2019-05-15           0.0            0.0        -1.0  
2019-07-15           1.0            1.0         0.0  
2019-07-16           1.0            0.0         1.0  
2020-03-04           0.0           -1.0         0.0  
2020-03-05           0.0            0.0        -1.0  
2020-04-24           1.0            1.0         0.0  
2020-04-27           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_026_SlowMA_45_FastMA_20
            open_price  close_price    fast_ma      slow_ma  ma_change  \
date                                                                     
2019-01-22     1096.00      1078.63  1061.2675  1060.006444   1.261056   
2019-01-23     1086.86      1084.41  1065.9255  1060.669333   5.256167   
2019-05-16     1171.84      1184.50  1204.5315  1205.413778  -0.882278   
2019-05-17     1175.83      1168.78  1200.8970  1204.886000  -3.989000   
2019-07-16     1146.73      1153.46  1116.7990  1113.687111   3.111889   
2019-07-17     1150.92      1146.74  1118.8740  1113.912667   4.961333   
2020-03-06     1269.95      1295.74  1433.0165  1437.111333  -4.094833   
2020-03-09     1204.96      1215.79  1419.8505  1433.713778 -13.863278   
2020-04-28     1283.20      1232.59  1215.2705  1214.391111   0.879389   
2020-04-29     1345.00      1342.18  1224.2820  1213.410222  10.871778   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-22           1.0            1.0         0.0  
2019-01-23           1.0            0.0         1.0  
2019-05-16           0.0           -1.0         0.0  
2019-05-17           0.0            0.0        -1.0  
2019-07-16           1.0            1.0         0.0  
2019-07-17           1.0            0.0         1.0  
2020-03-06           0.0           -1.0         0.0  
2020-03-09           0.0            0.0        -1.0  
2020-04-28           1.0            1.0         0.0  
2020-04-29           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_027_SlowMA_50_FastMA_05
            open_price  close_price   fast_ma    slow_ma  ma_change  \
date                                                                  
2019-01-08     1086.00      1085.37  1063.902  1059.6982     4.2038   
2019-01-09     1087.99      1081.65  1069.296  1059.2594    10.0366   
2019-05-06     1172.00      1193.46  1184.360  1198.8572   -14.4972   
2019-05-07     1185.81      1178.86  1180.340  1200.0878   -19.7478   
2019-07-10     1132.32      1140.91  1127.528  1122.5916     4.9364   
2019-07-11     1146.16      1144.08  1131.746  1121.4940    10.2520   
2019-10-04     1194.29      1210.96  1201.090  1203.1014    -2.0114   
2019-10-07     1207.00      1208.25  1198.512  1202.3620    -3.8500   
2019-10-10     1198.60      1209.47  1204.242  1200.6412     3.6008   
2019-10-11     1224.03      1215.71  1205.192  1200.7198     4.4722   
2020-02-27     1359.14      1314.95  1399.012  1429.6210   -30.6090   
2020-02-28     1274.31      1339.25  1370.170  1429.1920   -59.0220   
2020-04-24     1255.00      1276.60  1255.898  1252.8178     3.0802   
2020-04-27     1292.00      1270.86  1257.840  1247.9672     9.8728   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-08           1.0            1.0         0.0  
2019-01-09           1.0            0.0         1.0  
2019-05-06           0.0           -1.0         0.0  
2019-05-07           0.0            0.0        -1.0  
2019-07-10           1.0            1.0         0.0  
2019-07-11           1.0            0.0         1.0  
2019-10-04           0.0           -1.0         0.0  
2019-10-07           0.0            0.0        -1.0  
2019-10-10           1.0            1.0         0.0  
2019-10-11           1.0            0.0         1.0  
2020-02-27           0.0           -1.0         0.0  
2020-02-28           0.0            0.0        -1.0  
2020-04-24           1.0            1.0         0.0  
2020-04-27           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_028_SlowMA_50_FastMA_10
            open_price  close_price   fast_ma    slow_ma  ma_change  \
date                                                                  
2019-01-09     1087.99      1081.65  1059.355  1059.2594     0.0956   
2019-01-10     1074.94      1078.83  1062.453  1059.1610     3.2920   
2019-05-09     1162.60      1167.97  1201.303  1201.9648    -0.6618   
2019-05-10     1168.84      1167.64  1190.325  1202.7866   -12.4616   
2019-07-12     1142.93      1145.34  1122.246  1120.9344     1.3116   
2019-07-15     1145.34      1150.51  1129.017  1120.6144     8.4026   
2020-03-02     1351.39      1386.32  1428.193  1429.8206    -1.6276   
2020-03-03     1397.68      1337.72  1410.021  1429.5368   -19.5158   
2020-04-24     1255.00      1276.60  1254.886  1252.8178     2.0682   
2020-04-27     1292.00      1270.86  1260.931  1247.9672    12.9638   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-09           1.0            1.0         0.0  
2019-01-10           1.0            0.0         1.0  
2019-05-09           0.0           -1.0         0.0  
2019-05-10           0.0            0.0        -1.0  
2019-07-12           1.0            1.0         0.0  
2019-07-15           1.0            0.0         1.0  
2020-03-02           0.0           -1.0         0.0  
2020-03-03           0.0            0.0        -1.0  
2020-04-24           1.0            1.0         0.0  
2020-04-27           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_029_SlowMA_50_FastMA_15
            open_price  close_price      fast_ma    slow_ma  ma_change  \
date                                                                     
2019-01-16     1090.00      1089.51  1064.292000  1059.7850   4.507000   
2019-01-17     1087.99      1099.12  1067.710000  1060.3376   7.372400   
2019-05-14     1142.32      1124.86  1197.967333  1201.9768  -4.009467   
2019-05-15     1122.55      1170.80  1192.017333  1202.0090  -9.991667   
2019-07-17     1150.92      1146.74  1122.008000  1118.9582   3.049800   
2019-07-18     1142.00      1147.24  1126.469333  1118.3258   8.143533   
2020-03-05     1345.55      1314.76  1423.208667  1429.3108  -6.102133   
2020-03-06     1269.95      1295.74  1408.698667  1428.2130 -19.514333   
2020-04-28     1283.20      1232.59  1243.229333  1242.2444   0.984933   
2020-04-29     1345.00      1342.18  1253.870667  1238.6992  15.171467   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-16           1.0            1.0         0.0  
2019-01-17           1.0            0.0         1.0  
2019-05-14           0.0           -1.0         0.0  
2019-05-15           0.0            0.0        -1.0  
2019-07-17           1.0            1.0         0.0  
2019-07-18           1.0            0.0         1.0  
2020-03-05           0.0           -1.0         0.0  
2020-03-06           0.0            0.0        -1.0  
2020-04-28           1.0            1.0         0.0  
2020-04-29           1.0            0.0         1.0  

List the signal change and entry/exit points for SMA_030_SlowMA_50_FastMA_20
            open_price  close_price    fast_ma    slow_ma  ma_change  \
date                                                                   
2019-01-23     1086.86      1084.41  1065.9255  1061.0736     4.8519   
2019-01-24     1082.51      1084.00  1070.8920  1060.8610    10.0310   
2019-05-17     1175.83      1168.78  1200.8970  1202.7588    -1.8618   
2019-05-20     1153.00      1144.66  1195.4420  1202.6526    -7.2106   
2019-07-18     1142.00      1147.24  1121.0105  1118.3258     2.6847   
2019-07-19     1149.32      1131.55  1121.9280  1117.5412     4.3868   
2020-03-09     1204.96      1215.79  1419.8505  1425.6402    -5.7897   
2020-03-10     1254.39      1275.17  1408.1760  1423.8942   -15.7182   
2020-04-30     1331.36      1346.70  1236.5120  1235.1358     1.3762   
2020-05-01     1324.09      1317.32  1246.5265  1231.1424    15.3841   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-23           1.0            1.0         0.0  
2019-01-24           1.0            0.0         1.0  
2019-05-17           0.0           -1.0         0.0  
2019-05-20           0.0            0.0        -1.0  
2019-07-18           1.0            1.0         0.0  
2019-07-19           1.0            0.0         1.0  
2020-03-09           0.0           -1.0         0.0  
2020-03-10           0.0            0.0        -1.0  
2020-04-30           1.0            1.0         0.0  
2020-05-01           1.0            0.0         1.0  

In [17]:
if verbose:
    for key in model_collection:
        graph_data = model_collection[key].copy()
        title_string = "Simple Moving Average Crossover Model for " + key
        fig = plt.figure(figsize=(16,9))
        ylabel = stock_symbol + ' price in $'
        ax1 = fig.add_subplot(111, ylabel=ylabel, title=title_string)
        graph_data['fast_ma'].plot(ax=ax1, color='b', lw=2.)
        graph_data['slow_ma'].plot(ax=ax1, color='r', lw=2.)
        graph_data['close_price'].plot(ax=ax1, color='g')
        ax1.plot(graph_data.loc[graph_data.entry_exit == 1].index, graph_data.close_price[graph_data.entry_exit == 1], '^', markersize=7, color='k',label='buy')
        ax1.plot(graph_data.loc[graph_data.entry_exit == -1].index, graph_data.close_price[graph_data.entry_exit == -1], 'v', markersize=7, color='k',label='sell')
        plt.legend(loc='upper left')
        plt.show()

Task 4. Back-test Model

In [18]:
def trading_portfolio_generation(initial_fund, trading_model):
    # Construct a portfolio to track the transactions and returns
    portfolio = pd.DataFrame(index=trading_model.index, columns=['trade_action', 'qty_onhand', 'cost_basis', 'sold_transaction', 'gain_loss', 'cash_onhand', 'position_value', 'total_position', 'accumu_return'])
    portfolio.iloc[0]['trade_action'] = 0
    portfolio.iloc[0]['qty_onhand'] = 0
    portfolio.iloc[0]['cost_basis'] = 0.00
    portfolio.iloc[0]['sold_transaction'] = 0.00
    portfolio.iloc[0]['gain_loss'] = 0.00
    portfolio.iloc[0]['cash_onhand'] = initial_capital
    portfolio.iloc[0]['position_value'] = 0.00
    portfolio.iloc[0]['total_position'] = initial_capital
    portfolio.iloc[0]['accumu_return'] = portfolio.iloc[0]['total_position'] - initial_fund
    recent_cost = 0

    # The conditional parameters below determine how the trading strategy will be carried out
    for i in range(1, len(portfolio)):
        if (trading_model.iloc[i]['entry_exit'] == 1) and (portfolio.iloc[i-1]['qty_onhand'] == 0):
            portfolio.iloc[i]['trade_action'] = 1
            portfolio.iloc[i]['qty_onhand'] = portfolio.iloc[i-1]['qty_onhand'] + portfolio.iloc[i]['trade_action']
            portfolio.iloc[i]['cost_basis'] = trading_model.iloc[i]['open_price'] * portfolio.iloc[i]['trade_action']
            portfolio.iloc[i]['sold_transaction'] = 0.00
            portfolio.iloc[i]['gain_loss'] = 0.00
            portfolio.iloc[i]['cash_onhand'] = portfolio.iloc[i-1]['cash_onhand'] - portfolio.iloc[i]['cost_basis']
            recent_cost = trading_model.iloc[i]['open_price'] * portfolio.iloc[i]['trade_action']
            if verbose: print('BOUGHT QTY:', portfolio.iloc[i]['trade_action'], 'on', portfolio.index[i], 'at the price of', trading_model.iloc[i]['open_price'])
        elif (trading_model.iloc[i]['entry_exit'] == -1) and (portfolio.iloc[i-1]['qty_onhand'] > 0):
            portfolio.iloc[i]['trade_action'] = -1
            portfolio.iloc[i]['qty_onhand'] = portfolio.iloc[i-1]['qty_onhand'] + portfolio.iloc[i]['trade_action']
            portfolio.iloc[i]['cost_basis'] = 0.00
            portfolio.iloc[i]['sold_transaction'] = trading_model.iloc[i]['open_price'] * portfolio.iloc[i]['trade_action'] * -1
            portfolio.iloc[i]['gain_loss'] = (recent_cost + (trading_model.iloc[i]['open_price'] * portfolio.iloc[i]['trade_action'])) * -1
            portfolio.iloc[i]['cash_onhand'] = portfolio.iloc[i-1]['cash_onhand'] + portfolio.iloc[i]['sold_transaction']
            recent_cost = 0.00
            if verbose: print('SOLD QTY:', portfolio.iloc[i]['trade_action'], 'on', portfolio.index[i], 'at the price of', trading_model.iloc[i]['open_price'])
        else:
            portfolio.iloc[i]['trade_action'] = 0
            portfolio.iloc[i]['qty_onhand'] = portfolio.iloc[i-1]['qty_onhand']
            portfolio.iloc[i]['cost_basis'] = portfolio.iloc[i-1]['cost_basis']
            portfolio.iloc[i]['sold_transaction'] = 0.00
            portfolio.iloc[i]['gain_loss'] = 0.00
            portfolio.iloc[i]['cash_onhand'] = portfolio.iloc[i-1]['cash_onhand']
        portfolio.iloc[i]['position_value'] = trading_model.iloc[i]['close_price'] * portfolio.iloc[i]['qty_onhand']
        portfolio.iloc[i]['total_position'] = portfolio.iloc[i]['cash_onhand'] + portfolio.iloc[i]['position_value']
        portfolio.iloc[i]['accumu_return'] = portfolio.iloc[i]['total_position'] - initial_fund

    return portfolio
In [19]:
portfolio_collection = {}

# Build dataframe for reporting model performance summary
performance_summary = pd.DataFrame(columns=['model_name','return_value','return_percent'])

for key in model_collection:
    print('Processing portfolio for model:', key)
    portfolio_collection[key] = trading_portfolio_generation(initial_capital, model_collection[key])
    trade_transactions = portfolio_collection[key][portfolio_collection[key].trade_action != 0]
    print(trade_transactions)
    print('Accumulated profit/loss for one share of stock with initial capital of $%.0f at the end of modeling period: $%.2f' % (initial_capital, portfolio_collection[key].accumu_return[-1]))
    if initial_capital != 0:
        return_percentage = portfolio_collection[key].accumu_return[-1] / initial_capital * 100
        print('Accumulated return percentage based on the initial capital investment: %.2f%%' % (return_percentage))
    else:
        return_percentage = None
    if trade_transactions.iloc[-1]['trade_action'] == 1:
        print('The current status of the model is:', 'Holding a position since', trade_transactions.index.tolist()[-1], '\n')
    else:
        print('The current status of the model is:', 'Waiting to enter since', trade_transactions.index.tolist()[-1], '\n')
    performance_summary = performance_summary.append({'model_name': key, 'return_value': portfolio_collection[key].accumu_return[-1],
                                                      'return_percent': return_percentage}, ignore_index=True)
Processing portfolio for model: SMA_001_SlowMA_10_FastMA_05
BOUGHT QTY: 1 on 2019-01-22 00:00:00 at the price of 1096.0
SOLD QTY: -1 on 2019-01-29 00:00:00 at the price of 1081.04
BOUGHT QTY: 1 on 2019-02-01 00:00:00 at the price of 1122.29
SOLD QTY: -1 on 2019-02-13 00:00:00 at the price of 1133.04
BOUGHT QTY: 1 on 2019-02-20 00:00:00 at the price of 1128.88
SOLD QTY: -1 on 2019-02-25 00:00:00 at the price of 1121.93
BOUGHT QTY: 1 on 2019-03-01 00:00:00 at the price of 1131.0
SOLD QTY: -1 on 2019-03-29 00:00:00 at the price of 1180.18
BOUGHT QTY: 1 on 2019-04-05 00:00:00 at the price of 1219.3
SOLD QTY: -1 on 2019-05-02 00:00:00 at the price of 1172.6
BOUGHT QTY: 1 on 2019-05-22 00:00:00 at the price of 1151.25
SOLD QTY: -1 on 2019-05-24 00:00:00 at the price of 1152.0
BOUGHT QTY: 1 on 2019-06-14 00:00:00 at the price of 1089.74
SOLD QTY: -1 on 2019-06-28 00:00:00 at the price of 1077.23
BOUGHT QTY: 1 on 2019-07-08 00:00:00 at the price of 1125.87
SOLD QTY: -1 on 2019-07-24 00:00:00 at the price of 1132.62
BOUGHT QTY: 1 on 2019-07-29 00:00:00 at the price of 1242.5
SOLD QTY: -1 on 2019-08-07 00:00:00 at the price of 1157.8
BOUGHT QTY: 1 on 2019-08-15 00:00:00 at the price of 1168.43
SOLD QTY: -1 on 2019-08-16 00:00:00 at the price of 1180.79
BOUGHT QTY: 1 on 2019-08-23 00:00:00 at the price of 1185.17
SOLD QTY: -1 on 2019-08-27 00:00:00 at the price of 1183.0
BOUGHT QTY: 1 on 2019-09-04 00:00:00 at the price of 1179.45
SOLD QTY: -1 on 2019-09-25 00:00:00 at the price of 1216.01
BOUGHT QTY: 1 on 2019-09-30 00:00:00 at the price of 1220.6
SOLD QTY: -1 on 2019-10-01 00:00:00 at the price of 1222.49
BOUGHT QTY: 1 on 2019-10-11 00:00:00 at the price of 1224.03
SOLD QTY: -1 on 2019-11-25 00:00:00 at the price of 1296.26
BOUGHT QTY: 1 on 2019-12-05 00:00:00 at the price of 1327.0
SOLD QTY: -1 on 2019-12-26 00:00:00 at the price of 1346.55
BOUGHT QTY: 1 on 2019-12-27 00:00:00 at the price of 1364.0
SOLD QTY: -1 on 2019-12-30 00:00:00 at the price of 1356.81
BOUGHT QTY: 1 on 2020-01-03 00:00:00 at the price of 1348.0
SOLD QTY: -1 on 2020-01-06 00:00:00 at the price of 1351.63
BOUGHT QTY: 1 on 2020-01-07 00:00:00 at the price of 1400.46
SOLD QTY: -1 on 2020-01-30 00:00:00 at the price of 1438.1
BOUGHT QTY: 1 on 2020-02-07 00:00:00 at the price of 1467.38
SOLD QTY: -1 on 2020-02-25 00:00:00 at the price of 1431.0
BOUGHT QTY: 1 on 2020-03-30 00:00:00 at the price of 1132.64
SOLD QTY: -1 on 2020-04-08 00:00:00 at the price of 1203.1
BOUGHT QTY: 1 on 2020-04-09 00:00:00 at the price of 1218.18
SOLD QTY: -1 on 2020-04-28 00:00:00 at the price of 1283.2
BOUGHT QTY: 1 on 2020-04-29 00:00:00 at the price of 1345.0
SOLD QTY: -1 on 2020-05-19 00:00:00 at the price of 1385.48
BOUGHT QTY: 1 on 2020-05-21 00:00:00 at the price of 1410.99
SOLD QTY: -1 on 2020-06-16 00:00:00 at the price of 1449.0
BOUGHT QTY: 1 on 2020-06-23 00:00:00 at the price of 1452.0
SOLD QTY: -1 on 2020-06-29 00:00:00 at the price of 1360.34
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-22            1          1       1096                0         0   
2019-01-29           -1          0          0          1081.04    -14.96   
2019-02-01            1          1    1122.29                0         0   
2019-02-13           -1          0          0          1133.04     10.75   
2019-02-20            1          1    1128.88                0         0   
2019-02-25           -1          0          0          1121.93     -6.95   
2019-03-01            1          1       1131                0         0   
2019-03-29           -1          0          0          1180.18     49.18   
2019-04-05            1          1     1219.3                0         0   
2019-05-02           -1          0          0           1172.6     -46.7   
2019-05-22            1          1    1151.25                0         0   
2019-05-24           -1          0          0             1152      0.75   
2019-06-14            1          1    1089.74                0         0   
2019-06-28           -1          0          0          1077.23    -12.51   
2019-07-08            1          1    1125.87                0         0   
2019-07-24           -1          0          0          1132.62      6.75   
2019-07-29            1          1     1242.5                0         0   
2019-08-07           -1          0          0           1157.8     -84.7   
2019-08-15            1          1    1168.43                0         0   
2019-08-16           -1          0          0          1180.79     12.36   
2019-08-23            1          1    1185.17                0         0   
2019-08-27           -1          0          0             1183     -2.17   
2019-09-04            1          1    1179.45                0         0   
2019-09-25           -1          0          0          1216.01     36.56   
2019-09-30            1          1     1220.6                0         0   
2019-10-01           -1          0          0          1222.49      1.89   
2019-10-11            1          1    1224.03                0         0   
2019-11-25           -1          0          0          1296.26     72.23   
2019-12-05            1          1       1327                0         0   
2019-12-26           -1          0          0          1346.55     19.55   
2019-12-27            1          1       1364                0         0   
2019-12-30           -1          0          0          1356.81     -7.19   
2020-01-03            1          1       1348                0         0   
2020-01-06           -1          0          0          1351.63      3.63   
2020-01-07            1          1    1400.46                0         0   
2020-01-30           -1          0          0           1438.1     37.64   
2020-02-07            1          1    1467.38                0         0   
2020-02-25           -1          0          0             1431    -36.38   
2020-03-30            1          1    1132.64                0         0   
2020-04-08           -1          0          0           1203.1     70.46   
2020-04-09            1          1    1218.18                0         0   
2020-04-28           -1          0          0           1283.2     65.02   
2020-04-29            1          1       1345                0         0   
2020-05-19           -1          0          0          1385.48     40.48   
2020-05-21            1          1    1410.99                0         0   
2020-06-16           -1          0          0             1449     38.01   
2020-06-23            1          1       1452                0         0   
2020-06-29           -1          0          0          1360.34    -91.66   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-22       -1096        1078.63         -17.37        -17.37  
2019-01-29      -14.96              0         -14.96        -14.96  
2019-02-01    -1137.25        1118.62         -18.63        -18.63  
2019-02-13       -4.21              0          -4.21         -4.21  
2019-02-20    -1133.09        1120.59          -12.5         -12.5  
2019-02-25      -11.16              0         -11.16        -11.16  
2019-03-01    -1142.16        1148.52           6.36          6.36  
2019-03-29       38.02              0          38.02         38.02  
2019-04-05    -1181.28        1211.45          30.17         30.17  
2019-05-02       -8.68              0          -8.68         -8.68  
2019-05-22    -1159.93        1155.85          -4.08         -4.08  
2019-05-24       -7.93              0          -7.93         -7.93  
2019-06-14    -1097.67         1086.3         -11.37        -11.37  
2019-06-28      -20.44              0         -20.44        -20.44  
2019-07-08    -1146.31        1116.79         -29.52        -29.52  
2019-07-24      -13.69              0         -13.69        -13.69  
2019-07-29    -1256.19        1241.84         -14.35        -14.35  
2019-08-07      -98.39              0         -98.39        -98.39  
2019-08-15    -1266.82        1169.32          -97.5         -97.5  
2019-08-16      -86.03              0         -86.03        -86.03  
2019-08-23     -1271.2        1153.58        -117.62       -117.62  
2019-08-27       -88.2              0          -88.2         -88.2  
2019-09-04    -1267.65        1182.27         -85.38        -85.38  
2019-09-25      -51.64              0         -51.64        -51.64  
2019-09-30    -1272.24        1221.14          -51.1         -51.1  
2019-10-01      -49.75              0         -49.75        -49.75  
2019-10-11    -1273.78        1215.71         -58.07        -58.07  
2019-11-25       22.48              0          22.48         22.48  
2019-12-05    -1304.52        1326.96          22.44         22.44  
2019-12-26       42.03              0          42.03         42.03  
2019-12-27    -1321.97        1354.64          32.67         32.67  
2019-12-30       34.84              0          34.84         34.84  
2020-01-03    -1313.16        1361.52          48.36         48.36  
2020-01-06       38.47              0          38.47         38.47  
2020-01-07    -1361.99        1395.11          33.12         33.12  
2020-01-30       76.11              0          76.11         76.11  
2020-02-07    -1391.27        1479.11          87.84         87.84  
2020-02-25       39.73              0          39.73         39.73  
2020-03-30    -1092.91        1146.31           53.4          53.4  
2020-04-08      110.19              0         110.19        110.19  
2020-04-09    -1107.99        1206.57          98.58         98.58  
2020-04-28      175.21              0         175.21        175.21  
2020-04-29    -1169.79        1342.18         172.39        172.39  
2020-05-19      215.69              0         215.69        215.69  
2020-05-21     -1195.3        1406.75         211.45        211.45  
2020-06-16       253.7              0          253.7         253.7  
2020-06-23     -1198.3        1463.98         265.68        265.68  
2020-06-29      162.04              0         162.04        162.04  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $162.04
The current status of the model is: Waiting to enter since 2020-06-29 00:00:00 

Processing portfolio for model: SMA_002_SlowMA_15_FastMA_05
BOUGHT QTY: 1 on 2019-03-01 00:00:00 at the price of 1131.0
SOLD QTY: -1 on 2019-03-29 00:00:00 at the price of 1180.18
BOUGHT QTY: 1 on 2019-04-05 00:00:00 at the price of 1219.3
SOLD QTY: -1 on 2019-05-03 00:00:00 at the price of 1177.41
BOUGHT QTY: 1 on 2019-06-18 00:00:00 at the price of 1111.5
SOLD QTY: -1 on 2019-07-01 00:00:00 at the price of 1101.04
BOUGHT QTY: 1 on 2019-07-08 00:00:00 at the price of 1125.87
SOLD QTY: -1 on 2019-07-26 00:00:00 at the price of 1228.0
BOUGHT QTY: 1 on 2019-07-29 00:00:00 at the price of 1242.5
SOLD QTY: -1 on 2019-08-09 00:00:00 at the price of 1199.99
BOUGHT QTY: 1 on 2019-08-22 00:00:00 at the price of 1193.8
SOLD QTY: -1 on 2019-08-27 00:00:00 at the price of 1183.0
BOUGHT QTY: 1 on 2019-09-05 00:00:00 at the price of 1193.66
SOLD QTY: -1 on 2019-10-02 00:00:00 at the price of 1196.5
BOUGHT QTY: 1 on 2019-10-16 00:00:00 at the price of 1241.81
SOLD QTY: -1 on 2019-11-26 00:00:00 at the price of 1309.91
BOUGHT QTY: 1 on 2019-12-09 00:00:00 at the price of 1338.86
SOLD QTY: -1 on 2020-01-02 00:00:00 at the price of 1348.41
BOUGHT QTY: 1 on 2020-01-03 00:00:00 at the price of 1348.0
SOLD QTY: -1 on 2020-01-06 00:00:00 at the price of 1351.63
BOUGHT QTY: 1 on 2020-01-07 00:00:00 at the price of 1400.46
SOLD QTY: -1 on 2020-01-31 00:00:00 at the price of 1467.86
BOUGHT QTY: 1 on 2020-02-10 00:00:00 at the price of 1477.23
SOLD QTY: -1 on 2020-02-26 00:00:00 at the price of 1394.98
BOUGHT QTY: 1 on 2020-04-01 00:00:00 at the price of 1124.0
SOLD QTY: -1 on 2020-06-16 00:00:00 at the price of 1449.0
BOUGHT QTY: 1 on 2020-06-22 00:00:00 at the price of 1425.01
SOLD QTY: -1 on 2020-06-29 00:00:00 at the price of 1360.34
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-03-01            1          1       1131                0         0   
2019-03-29           -1          0          0          1180.18     49.18   
2019-04-05            1          1     1219.3                0         0   
2019-05-03           -1          0          0          1177.41    -41.89   
2019-06-18            1          1     1111.5                0         0   
2019-07-01           -1          0          0          1101.04    -10.46   
2019-07-08            1          1    1125.87                0         0   
2019-07-26           -1          0          0             1228    102.13   
2019-07-29            1          1     1242.5                0         0   
2019-08-09           -1          0          0          1199.99    -42.51   
2019-08-22            1          1     1193.8                0         0   
2019-08-27           -1          0          0             1183     -10.8   
2019-09-05            1          1    1193.66                0         0   
2019-10-02           -1          0          0           1196.5      2.84   
2019-10-16            1          1    1241.81                0         0   
2019-11-26           -1          0          0          1309.91      68.1   
2019-12-09            1          1    1338.86                0         0   
2020-01-02           -1          0          0          1348.41      9.55   
2020-01-03            1          1       1348                0         0   
2020-01-06           -1          0          0          1351.63      3.63   
2020-01-07            1          1    1400.46                0         0   
2020-01-31           -1          0          0          1467.86      67.4   
2020-02-10            1          1    1477.23                0         0   
2020-02-26           -1          0          0          1394.98    -82.25   
2020-04-01            1          1       1124                0         0   
2020-06-16           -1          0          0             1449       325   
2020-06-22            1          1    1425.01                0         0   
2020-06-29           -1          0          0          1360.34    -64.67   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-03-01       -1131        1148.52          17.52         17.52  
2019-03-29       49.18              0          49.18         49.18  
2019-04-05    -1170.12        1211.45          41.33         41.33  
2019-05-03        7.29              0           7.29          7.29  
2019-06-18    -1104.21        1105.24           1.03          1.03  
2019-07-01       -3.17              0          -3.17         -3.17  
2019-07-08    -1129.04        1116.79         -12.25        -12.25  
2019-07-26       98.96              0          98.96         98.96  
2019-07-29    -1143.54        1241.84           98.3          98.3  
2019-08-09       56.45              0          56.45         56.45  
2019-08-22    -1137.35        1191.52          54.17         54.17  
2019-08-27       45.65              0          45.65         45.65  
2019-09-05    -1148.01        1212.19          64.18         64.18  
2019-10-02       48.49              0          48.49         48.49  
2019-10-16    -1193.32           1243          49.68         49.68  
2019-11-26      116.59              0         116.59        116.59  
2019-12-09    -1222.27        1342.99         120.72        120.72  
2020-01-02      126.14              0         126.14        126.14  
2020-01-03    -1221.86        1361.52         139.66        139.66  
2020-01-06      129.77              0         129.77        129.77  
2020-01-07    -1270.69        1395.11         124.42        124.42  
2020-01-31      197.17              0         197.17        197.17  
2020-02-10    -1280.06        1508.66          228.6         228.6  
2020-02-26      114.92              0         114.92        114.92  
2020-04-01    -1009.08         1102.1          93.02         93.02  
2020-06-16      439.92              0         439.92        439.92  
2020-06-22     -985.09        1450.66         465.57        465.57  
2020-06-29      375.25              0         375.25        375.25  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $375.25
The current status of the model is: Waiting to enter since 2020-06-29 00:00:00 

Processing portfolio for model: SMA_003_SlowMA_15_FastMA_10
BOUGHT QTY: 1 on 2019-01-08 00:00:00 at the price of 1086.0
SOLD QTY: -1 on 2019-02-21 00:00:00 at the price of 1118.78
BOUGHT QTY: 1 on 2019-02-27 00:00:00 at the price of 1114.01
SOLD QTY: -1 on 2019-04-04 00:00:00 at the price of 1211.29
BOUGHT QTY: 1 on 2019-04-12 00:00:00 at the price of 1215.62
SOLD QTY: -1 on 2019-05-07 00:00:00 at the price of 1185.81
BOUGHT QTY: 1 on 2019-06-20 00:00:00 at the price of 1121.7
SOLD QTY: -1 on 2019-07-09 00:00:00 at the price of 1110.32
BOUGHT QTY: 1 on 2019-07-12 00:00:00 at the price of 1142.93
SOLD QTY: -1 on 2019-08-14 00:00:00 at the price of 1176.07
BOUGHT QTY: 1 on 2019-08-22 00:00:00 at the price of 1193.8
SOLD QTY: -1 on 2019-08-27 00:00:00 at the price of 1183.0
BOUGHT QTY: 1 on 2019-08-30 00:00:00 at the price of 1200.35
SOLD QTY: -1 on 2019-09-04 00:00:00 at the price of 1179.45
BOUGHT QTY: 1 on 2019-09-10 00:00:00 at the price of 1196.09
SOLD QTY: -1 on 2019-10-02 00:00:00 at the price of 1196.5
BOUGHT QTY: 1 on 2019-10-18 00:00:00 at the price of 1254.69
SOLD QTY: -1 on 2019-12-03 00:00:00 at the price of 1278.66
BOUGHT QTY: 1 on 2019-12-10 00:00:00 at the price of 1339.94
SOLD QTY: -1 on 2020-02-06 00:00:00 at the price of 1451.98
BOUGHT QTY: 1 on 2020-02-12 00:00:00 at the price of 1515.86
SOLD QTY: -1 on 2020-02-27 00:00:00 at the price of 1359.14
BOUGHT QTY: 1 on 2020-04-06 00:00:00 at the price of 1133.0
SOLD QTY: -1 on 2020-06-23 00:00:00 at the price of 1452.0
BOUGHT QTY: 1 on 2020-06-30 00:00:00 at the price of 1396.88
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-08            1          1       1086                0         0   
2019-02-21           -1          0          0          1118.78     32.78   
2019-02-27            1          1    1114.01                0         0   
2019-04-04           -1          0          0          1211.29     97.28   
2019-04-12            1          1    1215.62                0         0   
2019-05-07           -1          0          0          1185.81    -29.81   
2019-06-20            1          1     1121.7                0         0   
2019-07-09           -1          0          0          1110.32    -11.38   
2019-07-12            1          1    1142.93                0         0   
2019-08-14           -1          0          0          1176.07     33.14   
2019-08-22            1          1     1193.8                0         0   
2019-08-27           -1          0          0             1183     -10.8   
2019-08-30            1          1    1200.35                0         0   
2019-09-04           -1          0          0          1179.45     -20.9   
2019-09-10            1          1    1196.09                0         0   
2019-10-02           -1          0          0           1196.5      0.41   
2019-10-18            1          1    1254.69                0         0   
2019-12-03           -1          0          0          1278.66     23.97   
2019-12-10            1          1    1339.94                0         0   
2020-02-06           -1          0          0          1451.98    112.04   
2020-02-12            1          1    1515.86                0         0   
2020-02-27           -1          0          0          1359.14   -156.72   
2020-04-06            1          1       1133                0         0   
2020-06-23           -1          0          0             1452       319   
2020-06-30            1          1    1396.88                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-08       -1086        1085.37          -0.63         -0.63  
2019-02-21       32.78              0          32.78         32.78  
2019-02-27    -1081.23        1122.89          41.66         41.66  
2019-04-04      130.06              0         130.06        130.06  
2019-04-12    -1085.56        1222.73         137.17        137.17  
2019-05-07      100.25              0         100.25        100.25  
2019-06-20    -1021.45         1113.2          91.75         91.75  
2019-07-09       88.87              0          88.87         88.87  
2019-07-12    -1054.06        1145.34          91.28         91.28  
2019-08-14      122.01              0         122.01        122.01  
2019-08-22    -1071.79        1191.52         119.73        119.73  
2019-08-27      111.21              0         111.21        111.21  
2019-08-30    -1089.14        1190.53         101.39        101.39  
2019-09-04       90.31              0          90.31         90.31  
2019-09-10    -1105.78         1205.7          99.92         99.92  
2019-10-02       90.72              0          90.72         90.72  
2019-10-18    -1163.97        1244.41          80.44         80.44  
2019-12-03      114.69              0         114.69        114.69  
2019-12-10    -1225.25        1342.89         117.64        117.64  
2020-02-06      226.73              0         226.73        226.73  
2020-02-12    -1289.13        1518.63          229.5         229.5  
2020-02-27       70.01              0          70.01         70.01  
2020-04-06    -1062.99        1183.19          120.2         120.2  
2020-06-23      389.01              0         389.01        389.01  
2020-06-30    -1007.87        1418.05         410.18        410.18  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $410.18
The current status of the model is: Holding a position since 2020-06-30 00:00:00 

Processing portfolio for model: SMA_004_SlowMA_20_FastMA_05
BOUGHT QTY: 1 on 2019-03-04 00:00:00 at the price of 1154.56
SOLD QTY: -1 on 2019-04-01 00:00:00 at the price of 1187.54
BOUGHT QTY: 1 on 2019-04-04 00:00:00 at the price of 1211.29
SOLD QTY: -1 on 2019-05-03 00:00:00 at the price of 1177.41
BOUGHT QTY: 1 on 2019-06-20 00:00:00 at the price of 1121.7
SOLD QTY: -1 on 2019-07-02 00:00:00 at the price of 1104.83
BOUGHT QTY: 1 on 2019-07-03 00:00:00 at the price of 1118.5
SOLD QTY: -1 on 2019-08-16 00:00:00 at the price of 1180.79
BOUGHT QTY: 1 on 2019-09-03 00:00:00 at the price of 1181.85
SOLD QTY: -1 on 2019-09-04 00:00:00 at the price of 1179.45
BOUGHT QTY: 1 on 2019-09-05 00:00:00 at the price of 1193.66
SOLD QTY: -1 on 2019-10-03 00:00:00 at the price of 1183.34
BOUGHT QTY: 1 on 2019-10-17 00:00:00 at the price of 1251.4
SOLD QTY: -1 on 2019-12-04 00:00:00 at the price of 1306.1
BOUGHT QTY: 1 on 2019-12-09 00:00:00 at the price of 1338.86
SOLD QTY: -1 on 2020-02-26 00:00:00 at the price of 1394.98
BOUGHT QTY: 1 on 2020-04-08 00:00:00 at the price of 1203.1
SOLD QTY: -1 on 2020-06-18 00:00:00 at the price of 1449.85
BOUGHT QTY: 1 on 2020-06-19 00:00:00 at the price of 1440.0
SOLD QTY: -1 on 2020-06-29 00:00:00 at the price of 1360.34
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-03-04            1          1    1154.56                0         0   
2019-04-01           -1          0          0          1187.54     32.98   
2019-04-04            1          1    1211.29                0         0   
2019-05-03           -1          0          0          1177.41    -33.88   
2019-06-20            1          1     1121.7                0         0   
2019-07-02           -1          0          0          1104.83    -16.87   
2019-07-03            1          1     1118.5                0         0   
2019-08-16           -1          0          0          1180.79     62.29   
2019-09-03            1          1    1181.85                0         0   
2019-09-04           -1          0          0          1179.45      -2.4   
2019-09-05            1          1    1193.66                0         0   
2019-10-03           -1          0          0          1183.34    -10.32   
2019-10-17            1          1     1251.4                0         0   
2019-12-04           -1          0          0           1306.1      54.7   
2019-12-09            1          1    1338.86                0         0   
2020-02-26           -1          0          0          1394.98     56.12   
2020-04-08            1          1     1203.1                0         0   
2020-06-18           -1          0          0          1449.85    246.75   
2020-06-19            1          1       1440                0         0   
2020-06-29           -1          0          0          1360.34    -79.66   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-03-04    -1154.56        1153.42          -1.14         -1.14  
2019-04-01       32.98              0          32.98         32.98  
2019-04-04    -1178.31        1219.45          41.14         41.14  
2019-05-03        -0.9              0           -0.9          -0.9  
2019-06-20     -1122.6         1113.2           -9.4          -9.4  
2019-07-02      -17.77              0         -17.77        -17.77  
2019-07-03    -1136.27        1122.99         -13.28        -13.28  
2019-08-16       44.52              0          44.52         44.52  
2019-09-03    -1137.33        1169.55          32.22         32.22  
2019-09-04       42.12              0          42.12         42.12  
2019-09-05    -1151.54        1212.19          60.65         60.65  
2019-10-03        31.8              0           31.8          31.8  
2019-10-17     -1219.6         1252.8           33.2          33.2  
2019-12-04        86.5              0           86.5          86.5  
2019-12-09    -1252.36        1342.99          90.63         90.63  
2020-02-26      142.62              0         142.62        142.62  
2020-04-08    -1060.48           1207         146.52        146.52  
2020-06-18      389.37              0         389.37        389.37  
2020-06-19    -1050.63        1424.64         374.01        374.01  
2020-06-29      309.71              0         309.71        309.71  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $309.71
The current status of the model is: Waiting to enter since 2020-06-29 00:00:00 

Processing portfolio for model: SMA_005_SlowMA_20_FastMA_10
BOUGHT QTY: 1 on 2019-01-09 00:00:00 at the price of 1087.99
SOLD QTY: -1 on 2019-03-01 00:00:00 at the price of 1131.0
BOUGHT QTY: 1 on 2019-03-05 00:00:00 at the price of 1156.0
SOLD QTY: -1 on 2019-04-05 00:00:00 at the price of 1219.3
BOUGHT QTY: 1 on 2019-04-11 00:00:00 at the price of 1208.9
SOLD QTY: -1 on 2019-05-08 00:00:00 at the price of 1177.29
BOUGHT QTY: 1 on 2019-06-24 00:00:00 at the price of 1120.0
SOLD QTY: -1 on 2019-08-16 00:00:00 at the price of 1180.79
BOUGHT QTY: 1 on 2019-08-30 00:00:00 at the price of 1200.35
SOLD QTY: -1 on 2019-09-04 00:00:00 at the price of 1179.45
BOUGHT QTY: 1 on 2019-09-10 00:00:00 at the price of 1196.09
SOLD QTY: -1 on 2019-10-04 00:00:00 at the price of 1194.29
BOUGHT QTY: 1 on 2019-10-18 00:00:00 at the price of 1254.69
SOLD QTY: -1 on 2019-12-04 00:00:00 at the price of 1306.1
BOUGHT QTY: 1 on 2019-12-09 00:00:00 at the price of 1338.86
SOLD QTY: -1 on 2020-02-10 00:00:00 at the price of 1477.23
BOUGHT QTY: 1 on 2020-02-11 00:00:00 at the price of 1513.27
SOLD QTY: -1 on 2020-02-28 00:00:00 at the price of 1274.31
BOUGHT QTY: 1 on 2020-04-08 00:00:00 at the price of 1203.1
SOLD QTY: -1 on 2020-06-25 00:00:00 at the price of 1431.22
BOUGHT QTY: 1 on 2020-06-26 00:00:00 at the price of 1432.63
SOLD QTY: -1 on 2020-06-29 00:00:00 at the price of 1360.34
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-09            1          1    1087.99                0         0   
2019-03-01           -1          0          0             1131     43.01   
2019-03-05            1          1       1156                0         0   
2019-04-05           -1          0          0           1219.3      63.3   
2019-04-11            1          1     1208.9                0         0   
2019-05-08           -1          0          0          1177.29    -31.61   
2019-06-24            1          1       1120                0         0   
2019-08-16           -1          0          0          1180.79     60.79   
2019-08-30            1          1    1200.35                0         0   
2019-09-04           -1          0          0          1179.45     -20.9   
2019-09-10            1          1    1196.09                0         0   
2019-10-04           -1          0          0          1194.29      -1.8   
2019-10-18            1          1    1254.69                0         0   
2019-12-04           -1          0          0           1306.1     51.41   
2019-12-09            1          1    1338.86                0         0   
2020-02-10           -1          0          0          1477.23    138.37   
2020-02-11            1          1    1513.27                0         0   
2020-02-28           -1          0          0          1274.31   -238.96   
2020-04-08            1          1     1203.1                0         0   
2020-06-25           -1          0          0          1431.22    228.12   
2020-06-26            1          1    1432.63                0         0   
2020-06-29           -1          0          0          1360.34    -72.29   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-09    -1087.99        1081.65          -6.34         -6.34  
2019-03-01       43.01              0          43.01         43.01  
2019-03-05    -1112.99        1169.19           56.2          56.2  
2019-04-05      106.31              0         106.31        106.31  
2019-04-11    -1102.59        1209.59            107           107  
2019-05-08        74.7              0           74.7          74.7  
2019-06-24     -1045.3         1116.7           71.4          71.4  
2019-08-16      135.49              0         135.49        135.49  
2019-08-30    -1064.86        1190.53         125.67        125.67  
2019-09-04      114.59              0         114.59        114.59  
2019-09-10     -1081.5         1205.7          124.2         124.2  
2019-10-04      112.79              0         112.79        112.79  
2019-10-18     -1141.9        1244.41         102.51        102.51  
2019-12-04       164.2              0          164.2         164.2  
2019-12-09    -1174.66        1342.99         168.33        168.33  
2020-02-10      302.57              0         302.57        302.57  
2020-02-11     -1210.7        1510.06         299.36        299.36  
2020-02-28       63.61              0          63.61         63.61  
2020-04-08    -1139.49           1207          67.51         67.51  
2020-06-25      291.73              0         291.73        291.73  
2020-06-26     -1140.9        1362.54         221.64        221.64  
2020-06-29      219.44              0         219.44        219.44  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $219.44
The current status of the model is: Waiting to enter since 2020-06-29 00:00:00 

Processing portfolio for model: SMA_006_SlowMA_20_FastMA_15
BOUGHT QTY: 1 on 2019-01-14 00:00:00 at the price of 1053.34
SOLD QTY: -1 on 2019-02-28 00:00:00 at the price of 1119.0
BOUGHT QTY: 1 on 2019-03-06 00:00:00 at the price of 1171.76
SOLD QTY: -1 on 2019-04-12 00:00:00 at the price of 1215.62
BOUGHT QTY: 1 on 2019-04-18 00:00:00 at the price of 1245.0
SOLD QTY: -1 on 2019-05-10 00:00:00 at the price of 1168.84
BOUGHT QTY: 1 on 2019-06-26 00:00:00 at the price of 1091.0
SOLD QTY: -1 on 2019-08-21 00:00:00 at the price of 1195.82
BOUGHT QTY: 1 on 2019-09-03 00:00:00 at the price of 1181.85
SOLD QTY: -1 on 2019-09-04 00:00:00 at the price of 1179.45
BOUGHT QTY: 1 on 2019-09-09 00:00:00 at the price of 1207.08
SOLD QTY: -1 on 2019-10-08 00:00:00 at the price of 1198.77
BOUGHT QTY: 1 on 2019-10-24 00:00:00 at the price of 1259.11
SOLD QTY: -1 on 2020-02-14 00:00:00 at the price of 1514.53
BOUGHT QTY: 1 on 2020-02-19 00:00:00 at the price of 1527.2
SOLD QTY: -1 on 2020-03-03 00:00:00 at the price of 1397.68
BOUGHT QTY: 1 on 2020-04-09 00:00:00 at the price of 1218.18
SOLD QTY: -1 on 2020-06-29 00:00:00 at the price of 1360.34
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-14            1          1    1053.34                0         0   
2019-02-28           -1          0          0             1119     65.66   
2019-03-06            1          1    1171.76                0         0   
2019-04-12           -1          0          0          1215.62     43.86   
2019-04-18            1          1       1245                0         0   
2019-05-10           -1          0          0          1168.84    -76.16   
2019-06-26            1          1       1091                0         0   
2019-08-21           -1          0          0          1195.82    104.82   
2019-09-03            1          1    1181.85                0         0   
2019-09-04           -1          0          0          1179.45      -2.4   
2019-09-09            1          1    1207.08                0         0   
2019-10-08           -1          0          0          1198.77     -8.31   
2019-10-24            1          1    1259.11                0         0   
2020-02-14           -1          0          0          1514.53    255.42   
2020-02-19            1          1     1527.2                0         0   
2020-03-03           -1          0          0          1397.68   -129.52   
2020-04-09            1          1    1218.18                0         0   
2020-06-29           -1          0          0          1360.34    142.16   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-14    -1053.34        1051.51          -1.83         -1.83  
2019-02-28       65.66              0          65.66         65.66  
2019-03-06     -1106.1        1164.94          58.84         58.84  
2019-04-12      109.52              0         109.52        109.52  
2019-04-18    -1135.48        1241.47         105.99        105.99  
2019-05-10       33.36              0          33.36         33.36  
2019-06-26    -1057.64        1080.32          22.68         22.68  
2019-08-21      138.18              0         138.18        138.18  
2019-09-03    -1043.67        1169.55         125.88        125.88  
2019-09-04      135.78              0         135.78        135.78  
2019-09-09     -1071.3        1205.27         133.97        133.97  
2019-10-08      127.47              0         127.47        127.47  
2019-10-24    -1131.64        1259.11         127.47        127.47  
2020-02-14      382.89              0         382.89        382.89  
2020-02-19    -1144.31        1524.87         380.56        380.56  
2020-03-03      253.37              0         253.37        253.37  
2020-04-09     -964.81        1206.57         241.76        241.76  
2020-06-29      395.53              0         395.53        395.53  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $395.53
The current status of the model is: Waiting to enter since 2020-06-29 00:00:00 

Processing portfolio for model: SMA_007_SlowMA_25_FastMA_05
BOUGHT QTY: 1 on 2019-01-08 00:00:00 at the price of 1086.0
SOLD QTY: -1 on 2019-05-06 00:00:00 at the price of 1172.0
BOUGHT QTY: 1 on 2019-06-24 00:00:00 at the price of 1120.0
SOLD QTY: -1 on 2019-07-01 00:00:00 at the price of 1101.04
BOUGHT QTY: 1 on 2019-07-03 00:00:00 at the price of 1118.5
SOLD QTY: -1 on 2019-08-21 00:00:00 at the price of 1195.82
BOUGHT QTY: 1 on 2019-08-22 00:00:00 at the price of 1193.8
SOLD QTY: -1 on 2019-08-26 00:00:00 at the price of 1159.45
BOUGHT QTY: 1 on 2019-09-06 00:00:00 at the price of 1209.14
SOLD QTY: -1 on 2019-10-03 00:00:00 at the price of 1183.34
BOUGHT QTY: 1 on 2019-10-17 00:00:00 at the price of 1251.4
SOLD QTY: -1 on 2020-02-26 00:00:00 at the price of 1394.98
BOUGHT QTY: 1 on 2020-04-09 00:00:00 at the price of 1218.18
SOLD QTY: -1 on 2020-06-29 00:00:00 at the price of 1360.34
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-08            1          1       1086                0         0   
2019-05-06           -1          0          0             1172        86   
2019-06-24            1          1       1120                0         0   
2019-07-01           -1          0          0          1101.04    -18.96   
2019-07-03            1          1     1118.5                0         0   
2019-08-21           -1          0          0          1195.82     77.32   
2019-08-22            1          1     1193.8                0         0   
2019-08-26           -1          0          0          1159.45    -34.35   
2019-09-06            1          1    1209.14                0         0   
2019-10-03           -1          0          0          1183.34     -25.8   
2019-10-17            1          1     1251.4                0         0   
2020-02-26           -1          0          0          1394.98    143.58   
2020-04-09            1          1    1218.18                0         0   
2020-06-29           -1          0          0          1360.34    142.16   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-08       -1086        1085.37          -0.63         -0.63  
2019-05-06          86              0             86            86  
2019-06-24       -1034         1116.7           82.7          82.7  
2019-07-01       67.04              0          67.04         67.04  
2019-07-03    -1051.46        1122.99          71.53         71.53  
2019-08-21      144.36              0         144.36        144.36  
2019-08-22    -1049.44        1191.52         142.08        142.08  
2019-08-26      110.01              0         110.01        110.01  
2019-09-06    -1099.13        1206.32         107.19        107.19  
2019-10-03       84.21              0          84.21         84.21  
2019-10-17    -1167.19         1252.8          85.61         85.61  
2020-02-26      227.79              0         227.79        227.79  
2020-04-09     -990.39        1206.57         216.18        216.18  
2020-06-29      369.95              0         369.95        369.95  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $369.95
The current status of the model is: Waiting to enter since 2020-06-29 00:00:00 

Processing portfolio for model: SMA_008_SlowMA_25_FastMA_10
BOUGHT QTY: 1 on 2019-01-10 00:00:00 at the price of 1074.94
SOLD QTY: -1 on 2019-05-08 00:00:00 at the price of 1177.29
BOUGHT QTY: 1 on 2019-06-26 00:00:00 at the price of 1091.0
SOLD QTY: -1 on 2019-08-26 00:00:00 at the price of 1159.45
BOUGHT QTY: 1 on 2019-09-10 00:00:00 at the price of 1196.09
SOLD QTY: -1 on 2019-10-08 00:00:00 at the price of 1198.77
BOUGHT QTY: 1 on 2019-10-21 00:00:00 at the price of 1248.7
SOLD QTY: -1 on 2020-02-28 00:00:00 at the price of 1274.31
BOUGHT QTY: 1 on 2020-04-13 00:00:00 at the price of 1201.5
SOLD QTY: -1 on 2020-06-30 00:00:00 at the price of 1396.88
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-10            1          1    1074.94                0         0   
2019-05-08           -1          0          0          1177.29    102.35   
2019-06-26            1          1       1091                0         0   
2019-08-26           -1          0          0          1159.45     68.45   
2019-09-10            1          1    1196.09                0         0   
2019-10-08           -1          0          0          1198.77      2.68   
2019-10-21            1          1     1248.7                0         0   
2020-02-28           -1          0          0          1274.31     25.61   
2020-04-13            1          1     1201.5                0         0   
2020-06-30           -1          0          0          1396.88    195.38   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-10    -1074.94        1078.83           3.89          3.89  
2019-05-08      102.35              0         102.35        102.35  
2019-06-26     -988.65        1080.32          91.67         91.67  
2019-08-26       170.8              0          170.8         170.8  
2019-09-10    -1025.29         1205.7         180.41        180.41  
2019-10-08      173.48              0         173.48        173.48  
2019-10-21    -1075.22        1244.28         169.06        169.06  
2020-02-28      199.09              0         199.09        199.09  
2020-04-13    -1002.41        1210.41            208           208  
2020-06-30      394.47              0         394.47        394.47  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $394.47
The current status of the model is: Waiting to enter since 2020-06-30 00:00:00 

Processing portfolio for model: SMA_009_SlowMA_25_FastMA_15
BOUGHT QTY: 1 on 2019-01-15 00:00:00 at the price of 1058.01
SOLD QTY: -1 on 2019-04-15 00:00:00 at the price of 1224.09
BOUGHT QTY: 1 on 2019-04-17 00:00:00 at the price of 1237.0
SOLD QTY: -1 on 2019-05-13 00:00:00 at the price of 1145.24
BOUGHT QTY: 1 on 2019-07-01 00:00:00 at the price of 1101.04
SOLD QTY: -1 on 2019-08-23 00:00:00 at the price of 1185.17
BOUGHT QTY: 1 on 2019-09-09 00:00:00 at the price of 1207.08
SOLD QTY: -1 on 2019-10-10 00:00:00 at the price of 1198.6
BOUGHT QTY: 1 on 2019-10-24 00:00:00 at the price of 1259.11
SOLD QTY: -1 on 2020-03-04 00:00:00 at the price of 1358.96
BOUGHT QTY: 1 on 2020-04-15 00:00:00 at the price of 1246.51
SOLD QTY: -1 on 2020-06-30 00:00:00 at the price of 1396.88
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-15            1          1    1058.01                0         0   
2019-04-15           -1          0          0          1224.09    166.08   
2019-04-17            1          1       1237                0         0   
2019-05-13           -1          0          0          1145.24    -91.76   
2019-07-01            1          1    1101.04                0         0   
2019-08-23           -1          0          0          1185.17     84.13   
2019-09-09            1          1    1207.08                0         0   
2019-10-10           -1          0          0           1198.6     -8.48   
2019-10-24            1          1    1259.11                0         0   
2020-03-04           -1          0          0          1358.96     99.85   
2020-04-15            1          1    1246.51                0         0   
2020-06-30           -1          0          0          1396.88    150.37   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-15    -1058.01        1086.51           28.5          28.5  
2019-04-15      166.08              0         166.08        166.08  
2019-04-17    -1070.92        1240.14         169.22        169.22  
2019-05-13       74.32              0          74.32         74.32  
2019-07-01    -1026.72           1100          73.28         73.28  
2019-08-23      158.45              0         158.45        158.45  
2019-09-09    -1048.63        1205.27         156.64        156.64  
2019-10-10      149.97              0         149.97        149.97  
2019-10-24    -1109.14        1259.11         149.97        149.97  
2020-03-04      249.82              0         249.82        249.82  
2020-04-15     -996.69         1257.3         260.61        260.61  
2020-06-30      400.19              0         400.19        400.19  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $400.19
The current status of the model is: Waiting to enter since 2020-06-30 00:00:00 

Processing portfolio for model: SMA_010_SlowMA_25_FastMA_20
BOUGHT QTY: 1 on 2019-01-18 00:00:00 at the price of 1108.59
SOLD QTY: -1 on 2019-03-07 00:00:00 at the price of 1160.5
BOUGHT QTY: 1 on 2019-03-11 00:00:00 at the price of 1152.0
SOLD QTY: -1 on 2019-04-22 00:00:00 at the price of 1236.67
BOUGHT QTY: 1 on 2019-04-25 00:00:00 at the price of 1270.3
SOLD QTY: -1 on 2019-05-15 00:00:00 at the price of 1122.55
BOUGHT QTY: 1 on 2019-07-03 00:00:00 at the price of 1118.5
SOLD QTY: -1 on 2019-08-28 00:00:00 at the price of 1164.87
BOUGHT QTY: 1 on 2019-09-06 00:00:00 at the price of 1209.14
SOLD QTY: -1 on 2019-09-12 00:00:00 at the price of 1223.47
BOUGHT QTY: 1 on 2019-09-13 00:00:00 at the price of 1232.11
SOLD QTY: -1 on 2019-10-14 00:00:00 at the price of 1213.89
BOUGHT QTY: 1 on 2019-10-30 00:00:00 at the price of 1255.15
SOLD QTY: -1 on 2020-03-04 00:00:00 at the price of 1358.96
BOUGHT QTY: 1 on 2020-04-16 00:00:00 at the price of 1267.14
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-18            1          1    1108.59                0         0   
2019-03-07           -1          0          0           1160.5     51.91   
2019-03-11            1          1       1152                0         0   
2019-04-22           -1          0          0          1236.67     84.67   
2019-04-25            1          1     1270.3                0         0   
2019-05-15           -1          0          0          1122.55   -147.75   
2019-07-03            1          1     1118.5                0         0   
2019-08-28           -1          0          0          1164.87     46.37   
2019-09-06            1          1    1209.14                0         0   
2019-09-12           -1          0          0          1223.47     14.33   
2019-09-13            1          1    1232.11                0         0   
2019-10-14           -1          0          0          1213.89    -18.22   
2019-10-30            1          1    1255.15                0         0   
2020-03-04           -1          0          0          1358.96    103.81   
2020-04-16            1          1    1267.14                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-18    -1108.59         1107.3          -1.29         -1.29  
2019-03-07       51.91              0          51.91         51.91  
2019-03-11    -1100.09        1179.26          79.17         79.17  
2019-04-22      136.58              0         136.58        136.58  
2019-04-25    -1133.72        1267.34         133.62        133.62  
2019-05-15      -11.17              0         -11.17        -11.17  
2019-07-03    -1129.67        1122.99          -6.68         -6.68  
2019-08-28        35.2              0           35.2          35.2  
2019-09-06    -1173.94        1206.32          32.38         32.38  
2019-09-12       49.53              0          49.53         49.53  
2019-09-13    -1182.58        1240.03          57.45         57.45  
2019-10-14       31.31              0          31.31         31.31  
2019-10-30    -1223.84         1260.7          36.86         36.86  
2020-03-04      135.12              0         135.12        135.12  
2020-04-16    -1132.02        1257.43         125.41        125.41  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $286.03
The current status of the model is: Holding a position since 2020-04-16 00:00:00 

Processing portfolio for model: SMA_011_SlowMA_30_FastMA_05
BOUGHT QTY: 1 on 2019-01-08 00:00:00 at the price of 1086.0
SOLD QTY: -1 on 2019-05-06 00:00:00 at the price of 1172.0
BOUGHT QTY: 1 on 2019-06-25 00:00:00 at the price of 1115.08
SOLD QTY: -1 on 2019-06-26 00:00:00 at the price of 1091.0
BOUGHT QTY: 1 on 2019-07-05 00:00:00 at the price of 1119.37
SOLD QTY: -1 on 2019-08-27 00:00:00 at the price of 1183.0
BOUGHT QTY: 1 on 2019-09-06 00:00:00 at the price of 1209.14
SOLD QTY: -1 on 2019-10-04 00:00:00 at the price of 1194.29
BOUGHT QTY: 1 on 2019-10-17 00:00:00 at the price of 1251.4
SOLD QTY: -1 on 2020-02-26 00:00:00 at the price of 1394.98
BOUGHT QTY: 1 on 2020-04-14 00:00:00 at the price of 1239.97
SOLD QTY: -1 on 2020-06-30 00:00:00 at the price of 1396.88
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-08            1          1       1086                0         0   
2019-05-06           -1          0          0             1172        86   
2019-06-25            1          1    1115.08                0         0   
2019-06-26           -1          0          0             1091    -24.08   
2019-07-05            1          1    1119.37                0         0   
2019-08-27           -1          0          0             1183     63.63   
2019-09-06            1          1    1209.14                0         0   
2019-10-04           -1          0          0          1194.29    -14.85   
2019-10-17            1          1     1251.4                0         0   
2020-02-26           -1          0          0          1394.98    143.58   
2020-04-14            1          1    1239.97                0         0   
2020-06-30           -1          0          0          1396.88    156.91   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-08       -1086        1085.37          -0.63         -0.63  
2019-05-06          86              0             86            86  
2019-06-25    -1029.08        1087.58           58.5          58.5  
2019-06-26       61.92              0          61.92         61.92  
2019-07-05    -1057.45        1132.66          75.21         75.21  
2019-08-27      125.55              0         125.55        125.55  
2019-09-06    -1083.59        1206.32         122.73        122.73  
2019-10-04       110.7              0          110.7         110.7  
2019-10-17     -1140.7         1252.8          112.1         112.1  
2020-02-26      254.28              0         254.28        254.28  
2020-04-14     -985.69        1265.23         279.54        279.54  
2020-06-30      411.19              0         411.19        411.19  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $411.19
The current status of the model is: Waiting to enter since 2020-06-30 00:00:00 

Processing portfolio for model: SMA_012_SlowMA_30_FastMA_10
BOUGHT QTY: 1 on 2019-01-10 00:00:00 at the price of 1074.94
SOLD QTY: -1 on 2019-05-09 00:00:00 at the price of 1162.6
BOUGHT QTY: 1 on 2019-07-03 00:00:00 at the price of 1118.5
SOLD QTY: -1 on 2019-08-28 00:00:00 at the price of 1164.87
BOUGHT QTY: 1 on 2019-09-11 00:00:00 at the price of 1203.89
SOLD QTY: -1 on 2019-10-10 00:00:00 at the price of 1198.6
BOUGHT QTY: 1 on 2019-10-21 00:00:00 at the price of 1248.7
SOLD QTY: -1 on 2020-02-28 00:00:00 at the price of 1274.31
BOUGHT QTY: 1 on 2020-04-16 00:00:00 at the price of 1267.14
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-10            1          1    1074.94                0         0   
2019-05-09           -1          0          0           1162.6     87.66   
2019-07-03            1          1     1118.5                0         0   
2019-08-28           -1          0          0          1164.87     46.37   
2019-09-11            1          1    1203.89                0         0   
2019-10-10           -1          0          0           1198.6     -5.29   
2019-10-21            1          1     1248.7                0         0   
2020-02-28           -1          0          0          1274.31     25.61   
2020-04-16            1          1    1267.14                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-10    -1074.94        1078.83           3.89          3.89  
2019-05-09       87.66              0          87.66         87.66  
2019-07-03    -1030.84        1122.99          92.15         92.15  
2019-08-28      134.03              0         134.03        134.03  
2019-09-11    -1069.86           1220         150.14        150.14  
2019-10-10      128.74              0         128.74        128.74  
2019-10-21    -1119.96        1244.28         124.32        124.32  
2020-02-28      154.35              0         154.35        154.35  
2020-04-16    -1112.79        1257.43         144.64        144.64  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $305.26
The current status of the model is: Holding a position since 2020-04-16 00:00:00 

Processing portfolio for model: SMA_013_SlowMA_30_FastMA_15
BOUGHT QTY: 1 on 2019-01-16 00:00:00 at the price of 1090.0
SOLD QTY: -1 on 2019-05-14 00:00:00 at the price of 1142.32
BOUGHT QTY: 1 on 2019-07-05 00:00:00 at the price of 1119.37
SOLD QTY: -1 on 2019-08-30 00:00:00 at the price of 1200.35
BOUGHT QTY: 1 on 2019-09-12 00:00:00 at the price of 1223.47
SOLD QTY: -1 on 2019-10-14 00:00:00 at the price of 1213.89
BOUGHT QTY: 1 on 2019-10-25 00:00:00 at the price of 1252.0
SOLD QTY: -1 on 2020-03-03 00:00:00 at the price of 1397.68
BOUGHT QTY: 1 on 2020-04-17 00:00:00 at the price of 1281.7
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-16            1          1       1090                0         0   
2019-05-14           -1          0          0          1142.32     52.32   
2019-07-05            1          1    1119.37                0         0   
2019-08-30           -1          0          0          1200.35     80.98   
2019-09-12            1          1    1223.47                0         0   
2019-10-14           -1          0          0          1213.89     -9.58   
2019-10-25            1          1       1252                0         0   
2020-03-03           -1          0          0          1397.68    145.68   
2020-04-17            1          1     1281.7                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-16       -1090        1089.51          -0.49         -0.49  
2019-05-14       52.32              0          52.32         52.32  
2019-07-05    -1067.05        1132.66          65.61         65.61  
2019-08-30       133.3              0          133.3         133.3  
2019-09-12    -1090.17        1234.97          144.8         144.8  
2019-10-14      123.72              0         123.72        123.72  
2019-10-25    -1128.28         1264.3         136.02        136.02  
2020-03-03       269.4              0          269.4         269.4  
2020-04-17     -1012.3           1279          266.7         266.7  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $405.75
The current status of the model is: Holding a position since 2020-04-17 00:00:00 

Processing portfolio for model: SMA_014_SlowMA_30_FastMA_20
BOUGHT QTY: 1 on 2019-01-22 00:00:00 at the price of 1096.0
SOLD QTY: -1 on 2019-05-15 00:00:00 at the price of 1122.55
BOUGHT QTY: 1 on 2019-07-08 00:00:00 at the price of 1125.87
SOLD QTY: -1 on 2019-08-30 00:00:00 at the price of 1200.35
BOUGHT QTY: 1 on 2019-09-13 00:00:00 at the price of 1232.11
SOLD QTY: -1 on 2019-10-17 00:00:00 at the price of 1251.4
BOUGHT QTY: 1 on 2019-10-30 00:00:00 at the price of 1255.15
SOLD QTY: -1 on 2020-03-02 00:00:00 at the price of 1351.39
BOUGHT QTY: 1 on 2020-04-21 00:00:00 at the price of 1242.71
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-22            1          1       1096                0         0   
2019-05-15           -1          0          0          1122.55     26.55   
2019-07-08            1          1    1125.87                0         0   
2019-08-30           -1          0          0          1200.35     74.48   
2019-09-13            1          1    1232.11                0         0   
2019-10-17           -1          0          0           1251.4     19.29   
2019-10-30            1          1    1255.15                0         0   
2020-03-02           -1          0          0          1351.39     96.24   
2020-04-21            1          1    1242.71                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-22       -1096        1078.63         -17.37        -17.37  
2019-05-15       26.55              0          26.55         26.55  
2019-07-08    -1099.32        1116.79          17.47         17.47  
2019-08-30      101.03              0         101.03        101.03  
2019-09-13    -1131.08        1240.03         108.95        108.95  
2019-10-17      120.32              0         120.32        120.32  
2019-10-30    -1134.83         1260.7         125.87        125.87  
2020-03-02      216.56              0         216.56        216.56  
2020-04-21    -1026.15        1212.16         186.01        186.01  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $391.90
The current status of the model is: Holding a position since 2020-04-21 00:00:00 

Processing portfolio for model: SMA_015_SlowMA_35_FastMA_05
BOUGHT QTY: 1 on 2019-01-08 00:00:00 at the price of 1086.0
SOLD QTY: -1 on 2019-05-06 00:00:00 at the price of 1172.0
BOUGHT QTY: 1 on 2019-07-08 00:00:00 at the price of 1125.87
SOLD QTY: -1 on 2019-08-29 00:00:00 at the price of 1186.42
BOUGHT QTY: 1 on 2019-09-03 00:00:00 at the price of 1181.85
SOLD QTY: -1 on 2019-10-04 00:00:00 at the price of 1194.29
BOUGHT QTY: 1 on 2019-10-16 00:00:00 at the price of 1241.81
SOLD QTY: -1 on 2020-02-27 00:00:00 at the price of 1359.14
BOUGHT QTY: 1 on 2020-04-15 00:00:00 at the price of 1246.51
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-08            1          1       1086                0         0   
2019-05-06           -1          0          0             1172        86   
2019-07-08            1          1    1125.87                0         0   
2019-08-29           -1          0          0          1186.42     60.55   
2019-09-03            1          1    1181.85                0         0   
2019-10-04           -1          0          0          1194.29     12.44   
2019-10-16            1          1    1241.81                0         0   
2020-02-27           -1          0          0          1359.14    117.33   
2020-04-15            1          1    1246.51                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-08       -1086        1085.37          -0.63         -0.63  
2019-05-06          86              0             86            86  
2019-07-08    -1039.87        1116.79          76.92         76.92  
2019-08-29      146.55              0         146.55        146.55  
2019-09-03     -1035.3        1169.55         134.25        134.25  
2019-10-04      158.99              0         158.99        158.99  
2019-10-16    -1082.82           1243         160.18        160.18  
2020-02-27      276.32              0         276.32        276.32  
2020-04-15     -970.19         1257.3         287.11        287.11  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $447.86
The current status of the model is: Holding a position since 2020-04-15 00:00:00 

Processing portfolio for model: SMA_016_SlowMA_35_FastMA_10
BOUGHT QTY: 1 on 2019-01-10 00:00:00 at the price of 1074.94
SOLD QTY: -1 on 2019-05-09 00:00:00 at the price of 1162.6
BOUGHT QTY: 1 on 2019-07-10 00:00:00 at the price of 1132.32
SOLD QTY: -1 on 2019-09-05 00:00:00 at the price of 1193.66
BOUGHT QTY: 1 on 2019-09-10 00:00:00 at the price of 1196.09
SOLD QTY: -1 on 2019-10-11 00:00:00 at the price of 1224.03
BOUGHT QTY: 1 on 2019-10-18 00:00:00 at the price of 1254.69
SOLD QTY: -1 on 2020-02-28 00:00:00 at the price of 1274.31
BOUGHT QTY: 1 on 2020-04-17 00:00:00 at the price of 1281.7
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-10            1          1    1074.94                0         0   
2019-05-09           -1          0          0           1162.6     87.66   
2019-07-10            1          1    1132.32                0         0   
2019-09-05           -1          0          0          1193.66     61.34   
2019-09-10            1          1    1196.09                0         0   
2019-10-11           -1          0          0          1224.03     27.94   
2019-10-18            1          1    1254.69                0         0   
2020-02-28           -1          0          0          1274.31     19.62   
2020-04-17            1          1     1281.7                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-10    -1074.94        1078.83           3.89          3.89  
2019-05-09       87.66              0          87.66         87.66  
2019-07-10    -1044.66        1140.91          96.25         96.25  
2019-09-05         149              0            149           149  
2019-09-10    -1047.09         1205.7         158.61        158.61  
2019-10-11      176.94              0         176.94        176.94  
2019-10-18    -1077.75        1244.41         166.66        166.66  
2020-02-28      196.56              0         196.56        196.56  
2020-04-17    -1085.14           1279         193.86        193.86  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $332.91
The current status of the model is: Holding a position since 2020-04-17 00:00:00 

Processing portfolio for model: SMA_017_SlowMA_35_FastMA_15
BOUGHT QTY: 1 on 2019-01-17 00:00:00 at the price of 1087.99
SOLD QTY: -1 on 2019-05-14 00:00:00 at the price of 1142.32
BOUGHT QTY: 1 on 2019-07-09 00:00:00 at the price of 1110.32
SOLD QTY: -1 on 2019-09-05 00:00:00 at the price of 1193.66
BOUGHT QTY: 1 on 2019-09-06 00:00:00 at the price of 1209.14
SOLD QTY: -1 on 2019-09-11 00:00:00 at the price of 1203.89
BOUGHT QTY: 1 on 2019-09-12 00:00:00 at the price of 1223.47
SOLD QTY: -1 on 2019-10-17 00:00:00 at the price of 1251.4
BOUGHT QTY: 1 on 2019-10-24 00:00:00 at the price of 1259.11
SOLD QTY: -1 on 2020-03-03 00:00:00 at the price of 1397.68
BOUGHT QTY: 1 on 2020-04-21 00:00:00 at the price of 1242.71
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-17            1          1    1087.99                0         0   
2019-05-14           -1          0          0          1142.32     54.33   
2019-07-09            1          1    1110.32                0         0   
2019-09-05           -1          0          0          1193.66     83.34   
2019-09-06            1          1    1209.14                0         0   
2019-09-11           -1          0          0          1203.89     -5.25   
2019-09-12            1          1    1223.47                0         0   
2019-10-17           -1          0          0           1251.4     27.93   
2019-10-24            1          1    1259.11                0         0   
2020-03-03           -1          0          0          1397.68    138.57   
2020-04-21            1          1    1242.71                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-17    -1087.99        1099.12          11.13         11.13  
2019-05-14       54.33              0          54.33         54.33  
2019-07-09    -1055.99        1124.29           68.3          68.3  
2019-09-05      137.67              0         137.67        137.67  
2019-09-06    -1071.47        1206.32         134.85        134.85  
2019-09-11      132.42              0         132.42        132.42  
2019-09-12    -1091.05        1234.97         143.92        143.92  
2019-10-17      160.35              0         160.35        160.35  
2019-10-24    -1098.76        1259.11         160.35        160.35  
2020-03-03      298.92              0         298.92        298.92  
2020-04-21     -943.79        1212.16         268.37        268.37  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $474.26
The current status of the model is: Holding a position since 2020-04-21 00:00:00 

Processing portfolio for model: SMA_018_SlowMA_35_FastMA_20
BOUGHT QTY: 1 on 2019-01-24 00:00:00 at the price of 1082.51
SOLD QTY: -1 on 2019-05-17 00:00:00 at the price of 1175.83
BOUGHT QTY: 1 on 2019-07-11 00:00:00 at the price of 1146.16
SOLD QTY: -1 on 2019-09-10 00:00:00 at the price of 1196.09
BOUGHT QTY: 1 on 2019-09-17 00:00:00 at the price of 1231.63
SOLD QTY: -1 on 2019-10-24 00:00:00 at the price of 1259.11
BOUGHT QTY: 1 on 2019-10-30 00:00:00 at the price of 1255.15
SOLD QTY: -1 on 2020-03-04 00:00:00 at the price of 1358.96
BOUGHT QTY: 1 on 2020-04-23 00:00:00 at the price of 1265.74
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-24            1          1    1082.51                0         0   
2019-05-17           -1          0          0          1175.83     93.32   
2019-07-11            1          1    1146.16                0         0   
2019-09-10           -1          0          0          1196.09     49.93   
2019-09-17            1          1    1231.63                0         0   
2019-10-24           -1          0          0          1259.11     27.48   
2019-10-30            1          1    1255.15                0         0   
2020-03-04           -1          0          0          1358.96    103.81   
2020-04-23            1          1    1265.74                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-24    -1082.51           1084           1.49          1.49  
2019-05-17       93.32              0          93.32         93.32  
2019-07-11    -1052.84        1144.08          91.24         91.24  
2019-09-10      143.25              0         143.25        143.25  
2019-09-17    -1088.38        1229.88          141.5         141.5  
2019-10-24      170.73              0         170.73        170.73  
2019-10-30    -1084.42         1260.7         176.28        176.28  
2020-03-04      274.54              0         274.54        274.54  
2020-04-23      -991.2        1271.17         279.97        279.97  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $426.85
The current status of the model is: Holding a position since 2020-04-23 00:00:00 

Processing portfolio for model: SMA_019_SlowMA_40_FastMA_05
BOUGHT QTY: 1 on 2019-01-09 00:00:00 at the price of 1087.99
SOLD QTY: -1 on 2019-05-06 00:00:00 at the price of 1172.0
BOUGHT QTY: 1 on 2019-07-09 00:00:00 at the price of 1110.32
SOLD QTY: -1 on 2019-10-07 00:00:00 at the price of 1207.0
BOUGHT QTY: 1 on 2019-10-15 00:00:00 at the price of 1221.5
SOLD QTY: -1 on 2020-02-27 00:00:00 at the price of 1359.14
BOUGHT QTY: 1 on 2020-04-17 00:00:00 at the price of 1281.7
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-09            1          1    1087.99                0         0   
2019-05-06           -1          0          0             1172     84.01   
2019-07-09            1          1    1110.32                0         0   
2019-10-07           -1          0          0             1207     96.68   
2019-10-15            1          1     1221.5                0         0   
2020-02-27           -1          0          0          1359.14    137.64   
2020-04-17            1          1     1281.7                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-09    -1087.99        1081.65          -6.34         -6.34  
2019-05-06       84.01              0          84.01         84.01  
2019-07-09    -1026.31        1124.29          97.98         97.98  
2019-10-07      180.69              0         180.69        180.69  
2019-10-15    -1040.81        1242.24         201.43        201.43  
2020-02-27      318.33              0         318.33        318.33  
2020-04-17     -963.37           1279         315.63        315.63  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $454.68
The current status of the model is: Holding a position since 2020-04-17 00:00:00 

Processing portfolio for model: SMA_020_SlowMA_40_FastMA_10
BOUGHT QTY: 1 on 2019-01-10 00:00:00 at the price of 1074.94
SOLD QTY: -1 on 2019-05-09 00:00:00 at the price of 1162.6
BOUGHT QTY: 1 on 2019-07-12 00:00:00 at the price of 1142.93
SOLD QTY: -1 on 2019-10-11 00:00:00 at the price of 1224.03
BOUGHT QTY: 1 on 2019-10-17 00:00:00 at the price of 1251.4
SOLD QTY: -1 on 2020-03-02 00:00:00 at the price of 1351.39
BOUGHT QTY: 1 on 2020-04-21 00:00:00 at the price of 1242.71
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-10            1          1    1074.94                0         0   
2019-05-09           -1          0          0           1162.6     87.66   
2019-07-12            1          1    1142.93                0         0   
2019-10-11           -1          0          0          1224.03      81.1   
2019-10-17            1          1     1251.4                0         0   
2020-03-02           -1          0          0          1351.39     99.99   
2020-04-21            1          1    1242.71                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-10    -1074.94        1078.83           3.89          3.89  
2019-05-09       87.66              0          87.66         87.66  
2019-07-12    -1055.27        1145.34          90.07         90.07  
2019-10-11      168.76              0         168.76        168.76  
2019-10-17    -1082.64         1252.8         170.16        170.16  
2020-03-02      268.75              0         268.75        268.75  
2020-04-21     -973.96        1212.16          238.2         238.2  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $444.09
The current status of the model is: Holding a position since 2020-04-21 00:00:00 

Processing portfolio for model: SMA_021_SlowMA_40_FastMA_15
BOUGHT QTY: 1 on 2019-01-16 00:00:00 at the price of 1090.0
SOLD QTY: -1 on 2019-05-14 00:00:00 at the price of 1142.32
BOUGHT QTY: 1 on 2019-07-12 00:00:00 at the price of 1142.93
SOLD QTY: -1 on 2020-03-04 00:00:00 at the price of 1358.96
BOUGHT QTY: 1 on 2020-04-23 00:00:00 at the price of 1265.74
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-16            1          1       1090                0         0   
2019-05-14           -1          0          0          1142.32     52.32   
2019-07-12            1          1    1142.93                0         0   
2020-03-04           -1          0          0          1358.96    216.03   
2020-04-23            1          1    1265.74                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-16       -1090        1089.51          -0.49         -0.49  
2019-05-14       52.32              0          52.32         52.32  
2019-07-12    -1090.61        1145.34          54.73         54.73  
2020-03-04      268.35              0         268.35        268.35  
2020-04-23     -997.39        1271.17         273.78        273.78  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $420.66
The current status of the model is: Holding a position since 2020-04-23 00:00:00 

Processing portfolio for model: SMA_022_SlowMA_40_FastMA_20
BOUGHT QTY: 1 on 2019-01-23 00:00:00 at the price of 1086.86
SOLD QTY: -1 on 2019-05-17 00:00:00 at the price of 1175.83
BOUGHT QTY: 1 on 2019-07-15 00:00:00 at the price of 1145.34
SOLD QTY: -1 on 2020-03-06 00:00:00 at the price of 1269.95
BOUGHT QTY: 1 on 2020-04-27 00:00:00 at the price of 1292.0
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-23            1          1    1086.86                0         0   
2019-05-17           -1          0          0          1175.83     88.97   
2019-07-15            1          1    1145.34                0         0   
2020-03-06           -1          0          0          1269.95    124.61   
2020-04-27            1          1       1292                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-23    -1086.86        1084.41          -2.45         -2.45  
2019-05-17       88.97              0          88.97         88.97  
2019-07-15    -1056.37        1150.51          94.14         94.14  
2020-03-06      213.58              0         213.58        213.58  
2020-04-27    -1078.42        1270.86         192.44        192.44  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $339.63
The current status of the model is: Holding a position since 2020-04-27 00:00:00 

Processing portfolio for model: SMA_023_SlowMA_45_FastMA_05
BOUGHT QTY: 1 on 2019-01-09 00:00:00 at the price of 1087.99
SOLD QTY: -1 on 2019-05-06 00:00:00 at the price of 1172.0
BOUGHT QTY: 1 on 2019-07-10 00:00:00 at the price of 1132.32
SOLD QTY: -1 on 2019-10-08 00:00:00 at the price of 1198.77
BOUGHT QTY: 1 on 2019-10-11 00:00:00 at the price of 1224.03
SOLD QTY: -1 on 2020-02-28 00:00:00 at the price of 1274.31
BOUGHT QTY: 1 on 2020-04-20 00:00:00 at the price of 1269.89
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-09            1          1    1087.99                0         0   
2019-05-06           -1          0          0             1172     84.01   
2019-07-10            1          1    1132.32                0         0   
2019-10-08           -1          0          0          1198.77     66.45   
2019-10-11            1          1    1224.03                0         0   
2020-02-28           -1          0          0          1274.31     50.28   
2020-04-20            1          1    1269.89                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-09    -1087.99        1081.65          -6.34         -6.34  
2019-05-06       84.01              0          84.01         84.01  
2019-07-10    -1048.31        1140.91           92.6          92.6  
2019-10-08      150.46              0         150.46        150.46  
2019-10-11    -1073.57        1215.71         142.14        142.14  
2020-02-28      200.74              0         200.74        200.74  
2020-04-20    -1069.15        1261.15            192           192  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $348.90
The current status of the model is: Holding a position since 2020-04-20 00:00:00 

Processing portfolio for model: SMA_024_SlowMA_45_FastMA_10
BOUGHT QTY: 1 on 2019-01-10 00:00:00 at the price of 1074.94
SOLD QTY: -1 on 2019-05-10 00:00:00 at the price of 1168.84
BOUGHT QTY: 1 on 2019-07-12 00:00:00 at the price of 1142.93
SOLD QTY: -1 on 2019-10-15 00:00:00 at the price of 1221.5
BOUGHT QTY: 1 on 2019-10-16 00:00:00 at the price of 1241.81
SOLD QTY: -1 on 2020-03-03 00:00:00 at the price of 1397.68
BOUGHT QTY: 1 on 2020-04-23 00:00:00 at the price of 1265.74
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-10            1          1    1074.94                0         0   
2019-05-10           -1          0          0          1168.84      93.9   
2019-07-12            1          1    1142.93                0         0   
2019-10-15           -1          0          0           1221.5     78.57   
2019-10-16            1          1    1241.81                0         0   
2020-03-03           -1          0          0          1397.68    155.87   
2020-04-23            1          1    1265.74                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-10    -1074.94        1078.83           3.89          3.89  
2019-05-10        93.9              0           93.9          93.9  
2019-07-12    -1049.03        1145.34          96.31         96.31  
2019-10-15      172.47              0         172.47        172.47  
2019-10-16    -1069.34           1243         173.66        173.66  
2020-03-03      328.34              0         328.34        328.34  
2020-04-23      -937.4        1271.17         333.77        333.77  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $480.65
The current status of the model is: Holding a position since 2020-04-23 00:00:00 

Processing portfolio for model: SMA_025_SlowMA_45_FastMA_15
BOUGHT QTY: 1 on 2019-01-17 00:00:00 at the price of 1087.99
SOLD QTY: -1 on 2019-05-15 00:00:00 at the price of 1122.55
BOUGHT QTY: 1 on 2019-07-16 00:00:00 at the price of 1146.73
SOLD QTY: -1 on 2020-03-05 00:00:00 at the price of 1345.55
BOUGHT QTY: 1 on 2020-04-27 00:00:00 at the price of 1292.0
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-17            1          1    1087.99                0         0   
2019-05-15           -1          0          0          1122.55     34.56   
2019-07-16            1          1    1146.73                0         0   
2020-03-05           -1          0          0          1345.55    198.82   
2020-04-27            1          1       1292                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-17    -1087.99        1099.12          11.13         11.13  
2019-05-15       34.56              0          34.56         34.56  
2019-07-16    -1112.17        1153.46          41.29         41.29  
2020-03-05      233.38              0         233.38        233.38  
2020-04-27    -1058.62        1270.86         212.24        212.24  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $359.43
The current status of the model is: Holding a position since 2020-04-27 00:00:00 

Processing portfolio for model: SMA_026_SlowMA_45_FastMA_20
BOUGHT QTY: 1 on 2019-01-23 00:00:00 at the price of 1086.86
SOLD QTY: -1 on 2019-05-17 00:00:00 at the price of 1175.83
BOUGHT QTY: 1 on 2019-07-17 00:00:00 at the price of 1150.92
SOLD QTY: -1 on 2020-03-09 00:00:00 at the price of 1204.96
BOUGHT QTY: 1 on 2020-04-29 00:00:00 at the price of 1345.0
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-23            1          1    1086.86                0         0   
2019-05-17           -1          0          0          1175.83     88.97   
2019-07-17            1          1    1150.92                0         0   
2020-03-09           -1          0          0          1204.96     54.04   
2020-04-29            1          1       1345                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-23    -1086.86        1084.41          -2.45         -2.45  
2019-05-17       88.97              0          88.97         88.97  
2019-07-17    -1061.95        1146.74          84.79         84.79  
2020-03-09      143.01              0         143.01        143.01  
2020-04-29    -1201.99        1342.18         140.19        140.19  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $216.06
The current status of the model is: Holding a position since 2020-04-29 00:00:00 

Processing portfolio for model: SMA_027_SlowMA_50_FastMA_05
BOUGHT QTY: 1 on 2019-01-09 00:00:00 at the price of 1087.99
SOLD QTY: -1 on 2019-05-07 00:00:00 at the price of 1185.81
BOUGHT QTY: 1 on 2019-07-11 00:00:00 at the price of 1146.16
SOLD QTY: -1 on 2019-10-07 00:00:00 at the price of 1207.0
BOUGHT QTY: 1 on 2019-10-11 00:00:00 at the price of 1224.03
SOLD QTY: -1 on 2020-02-28 00:00:00 at the price of 1274.31
BOUGHT QTY: 1 on 2020-04-27 00:00:00 at the price of 1292.0
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-09            1          1    1087.99                0         0   
2019-05-07           -1          0          0          1185.81     97.82   
2019-07-11            1          1    1146.16                0         0   
2019-10-07           -1          0          0             1207     60.84   
2019-10-11            1          1    1224.03                0         0   
2020-02-28           -1          0          0          1274.31     50.28   
2020-04-27            1          1       1292                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-09    -1087.99        1081.65          -6.34         -6.34  
2019-05-07       97.82              0          97.82         97.82  
2019-07-11    -1048.34        1144.08          95.74         95.74  
2019-10-07      158.66              0         158.66        158.66  
2019-10-11    -1065.37        1215.71         150.34        150.34  
2020-02-28      208.94              0         208.94        208.94  
2020-04-27    -1083.06        1270.86          187.8         187.8  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $334.99
The current status of the model is: Holding a position since 2020-04-27 00:00:00 

Processing portfolio for model: SMA_028_SlowMA_50_FastMA_10
BOUGHT QTY: 1 on 2019-01-10 00:00:00 at the price of 1074.94
SOLD QTY: -1 on 2019-05-10 00:00:00 at the price of 1168.84
BOUGHT QTY: 1 on 2019-07-15 00:00:00 at the price of 1145.34
SOLD QTY: -1 on 2020-03-03 00:00:00 at the price of 1397.68
BOUGHT QTY: 1 on 2020-04-27 00:00:00 at the price of 1292.0
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-10            1          1    1074.94                0         0   
2019-05-10           -1          0          0          1168.84      93.9   
2019-07-15            1          1    1145.34                0         0   
2020-03-03           -1          0          0          1397.68    252.34   
2020-04-27            1          1       1292                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-10    -1074.94        1078.83           3.89          3.89  
2019-05-10        93.9              0           93.9          93.9  
2019-07-15    -1051.44        1150.51          99.07         99.07  
2020-03-03      346.24              0         346.24        346.24  
2020-04-27     -945.76        1270.86          325.1         325.1  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $472.29
The current status of the model is: Holding a position since 2020-04-27 00:00:00 

Processing portfolio for model: SMA_029_SlowMA_50_FastMA_15
BOUGHT QTY: 1 on 2019-01-17 00:00:00 at the price of 1087.99
SOLD QTY: -1 on 2019-05-15 00:00:00 at the price of 1122.55
BOUGHT QTY: 1 on 2019-07-18 00:00:00 at the price of 1142.0
SOLD QTY: -1 on 2020-03-06 00:00:00 at the price of 1269.95
BOUGHT QTY: 1 on 2020-04-29 00:00:00 at the price of 1345.0
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-17            1          1    1087.99                0         0   
2019-05-15           -1          0          0          1122.55     34.56   
2019-07-18            1          1       1142                0         0   
2020-03-06           -1          0          0          1269.95    127.95   
2020-04-29            1          1       1345                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-17    -1087.99        1099.12          11.13         11.13  
2019-05-15       34.56              0          34.56         34.56  
2019-07-18    -1107.44        1147.24           39.8          39.8  
2020-03-06      162.51              0         162.51        162.51  
2020-04-29    -1182.49        1342.18         159.69        159.69  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $235.56
The current status of the model is: Holding a position since 2020-04-29 00:00:00 

Processing portfolio for model: SMA_030_SlowMA_50_FastMA_20
BOUGHT QTY: 1 on 2019-01-24 00:00:00 at the price of 1082.51
SOLD QTY: -1 on 2019-05-20 00:00:00 at the price of 1153.0
BOUGHT QTY: 1 on 2019-07-19 00:00:00 at the price of 1149.32
SOLD QTY: -1 on 2020-03-10 00:00:00 at the price of 1254.39
BOUGHT QTY: 1 on 2020-05-01 00:00:00 at the price of 1324.09
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-24            1          1    1082.51                0         0   
2019-05-20           -1          0          0             1153     70.49   
2019-07-19            1          1    1149.32                0         0   
2020-03-10           -1          0          0          1254.39    105.07   
2020-05-01            1          1    1324.09                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-24    -1082.51           1084           1.49          1.49  
2019-05-20       70.49              0          70.49         70.49  
2019-07-19    -1078.83        1131.55          52.72         52.72  
2020-03-10      175.56              0         175.56        175.56  
2020-05-01    -1148.53        1317.32         168.79        168.79  
Accumulated profit/loss for one share of stock with initial capital of $0 at the end of modeling period: $269.52
The current status of the model is: Holding a position since 2020-05-01 00:00:00 

In [20]:
# Display the model performance summary
performance_summary.sort_values(by=['return_value'], inplace=True, ascending=False)
print(performance_summary)
                     model_name  return_value return_percent
23  SMA_024_SlowMA_45_FastMA_10        480.65           None
16  SMA_017_SlowMA_35_FastMA_15        474.26           None
27  SMA_028_SlowMA_50_FastMA_10        472.29           None
18  SMA_019_SlowMA_40_FastMA_05        454.68           None
14  SMA_015_SlowMA_35_FastMA_05        447.86           None
19  SMA_020_SlowMA_40_FastMA_10        444.09           None
17  SMA_018_SlowMA_35_FastMA_20        426.85           None
20  SMA_021_SlowMA_40_FastMA_15        420.66           None
10  SMA_011_SlowMA_30_FastMA_05        411.19           None
2   SMA_003_SlowMA_15_FastMA_10        410.18           None
12  SMA_013_SlowMA_30_FastMA_15        405.75           None
8   SMA_009_SlowMA_25_FastMA_15        400.19           None
5   SMA_006_SlowMA_20_FastMA_15        395.53           None
7   SMA_008_SlowMA_25_FastMA_10        394.47           None
13  SMA_014_SlowMA_30_FastMA_20        391.90           None
1   SMA_002_SlowMA_15_FastMA_05        375.25           None
6   SMA_007_SlowMA_25_FastMA_05        369.95           None
24  SMA_025_SlowMA_45_FastMA_15        359.43           None
22  SMA_023_SlowMA_45_FastMA_05        348.90           None
21  SMA_022_SlowMA_40_FastMA_20        339.63           None
26  SMA_027_SlowMA_50_FastMA_05        334.99           None
15  SMA_016_SlowMA_35_FastMA_10        332.91           None
3   SMA_004_SlowMA_20_FastMA_05        309.71           None
11  SMA_012_SlowMA_30_FastMA_10        305.26           None
9   SMA_010_SlowMA_25_FastMA_20        286.03           None
29  SMA_030_SlowMA_50_FastMA_20        269.52           None
28  SMA_029_SlowMA_50_FastMA_15        235.56           None
4   SMA_005_SlowMA_20_FastMA_10        219.44           None
25  SMA_026_SlowMA_45_FastMA_20        216.06           None
0   SMA_001_SlowMA_10_FastMA_05        162.04           None
In [21]:
# Display the transactions from the top model
top_model = performance_summary.iloc[0]['model_name']
print('The transactions from the top model %s:' % (top_model))
print(portfolio_collection[top_model][portfolio_collection[top_model].trade_action != 0])
The transactions from the top model SMA_024_SlowMA_45_FastMA_10:
           trade_action qty_onhand cost_basis sold_transaction gain_loss  \
date                                                                       
2019-01-10            1          1    1074.94                0         0   
2019-05-10           -1          0          0          1168.84      93.9   
2019-07-12            1          1    1142.93                0         0   
2019-10-15           -1          0          0           1221.5     78.57   
2019-10-16            1          1    1241.81                0         0   
2020-03-03           -1          0          0          1397.68    155.87   
2020-04-23            1          1    1265.74                0         0   

           cash_onhand position_value total_position accumu_return  
date                                                                
2019-01-10    -1074.94        1078.83           3.89          3.89  
2019-05-10        93.9              0           93.9          93.9  
2019-07-12    -1049.03        1145.34          96.31         96.31  
2019-10-15      172.47              0         172.47        172.47  
2019-10-16    -1069.34           1243         173.66        173.66  
2020-03-03      328.34              0         328.34        328.34  
2020-04-23      -937.4        1271.17         333.77        333.77  
In [22]:
# Display the entry and exit signals for the top model
print('The trading signal changes from the top model %s:' % (top_model))
print(model_collection[top_model][model_collection[top_model].signal_change != 0])
The trading signal changes from the top model SMA_024_SlowMA_45_FastMA_10:
            open_price  close_price   fast_ma      slow_ma  ma_change  \
date                                                                    
2019-01-09     1087.99      1081.65  1059.355  1058.187111   1.167889   
2019-05-09     1162.60      1167.97  1201.303  1207.458222  -6.155222   
2019-07-11     1146.16      1144.08  1115.375  1114.955556   0.419444   
2019-10-14     1213.89      1217.77  1202.804  1203.569111  -0.765111   
2019-10-15     1221.50      1242.24  1206.428  1205.074444   1.353556   
2020-03-02     1351.39      1386.32  1428.193  1438.586667 -10.393667   
2020-04-22     1241.11      1258.41  1241.466  1234.256889   7.209111   

            trade_signal  signal_change  entry_exit  
date                                                 
2019-01-09           1.0            1.0         0.0  
2019-05-09           0.0           -1.0         0.0  
2019-07-11           1.0            1.0         0.0  
2019-10-14           0.0           -1.0         0.0  
2019-10-15           1.0            1.0        -1.0  
2020-03-02           0.0           -1.0         0.0  
2020-04-22           1.0            1.0         0.0  
In [23]:
graph_data = model_collection[top_model].copy()
title_string = "Simple Moving Average Crossover Model for " + top_model
fig = plt.figure(figsize=(16,9))
ylabel = stock_symbol + ' price in $'
ax1 = fig.add_subplot(111, ylabel=ylabel, title=title_string)
graph_data['fast_ma'].plot(ax=ax1, color='b', lw=2.)
graph_data['slow_ma'].plot(ax=ax1, color='r', lw=2.)
graph_data['close_price'].plot(ax=ax1, color='g')
ax1.plot(graph_data.loc[graph_data.entry_exit == 1].index, graph_data.close_price[graph_data.entry_exit == 1], '^', markersize=7, color='k',label='buy')
ax1.plot(graph_data.loc[graph_data.entry_exit == -1].index, graph_data.close_price[graph_data.entry_exit == -1], 'v', markersize=7, color='k',label='sell')
plt.legend(loc='upper left')
plt.show()

Task 5. Evaluate Performance

In [24]:
best_model = ''
best_return = 0
for key in portfolio_collection:
    if portfolio_collection[key]['accumu_return'][-1] > best_return:
        best_model = key
        best_return = portfolio_collection[best_model]['accumu_return'][-1]
print('The best model found is:', best_model)
print('The best profit/loss for the investing period is: $%.2f' % (best_return))
if initial_capital != 0:
    print('The best return percentage for initial capital is: %.2f%%' % (best_return / initial_capital * 100))
The best model found is: SMA_024_SlowMA_45_FastMA_10
The best profit/loss for the investing period is: $480.65
In [25]:
worst_model = None
worst_return = 0
for key in portfolio_collection:
    if portfolio_collection[key]['accumu_return'][-1] < worst_return:
        worst_model = key
        worst_return = portfolio_collection[worst_model]['accumu_return'][-1]
print('The worst model found is:', worst_model)
print('The worst profit/loss for the investing period is: $%.2f' % (worst_return))
if initial_capital != 0:
    print('The worst return percentage for the initial capital is: %.2f%%' % (worst_return / initial_capital * 100))
The worst model found is: None
The worst profit/loss for the investing period is: $0.00
In [26]:
# Calculate the stock's performance for a long-only model
model_template = model_template[model_start_date:model_end_date]
print('The performance of the long-only model from day one is: $%.2f' %(model_template.iloc[-1]['close_price'] - model_template.iloc[0]['open_price']))
The performance of the long-only model from day one is: $390.85
In [27]:
print ('Total time for the script:',(datetime.now() - startTimeScript))
Total time for the script: 0:00:45.040917